4 Sitoutukset fb0d9f638b ... ecc3e8591d

Tekijä SHA1 Viesti Päivämäärä
  Piotr Czajkowski ecc3e8591d More consise 10 kuukautta sitten
  Piotr Czajkowski fd3def7108 Cleaner 10 kuukautta sitten
  Piotr Czajkowski 685384cbaa Let's keep everything together 10 kuukautta sitten
  Piotr Czajkowski f44327a440 Cosmetics 10 kuukautta sitten
1 muutettua tiedostoa jossa 13 lisäystä ja 12 poistoa
  1. 13 12
      ExcelORM/ExcelORM/TypeExtensions.cs

+ 13 - 12
ExcelORM/ExcelORM/TypeExtensions.cs

@@ -31,19 +31,20 @@ public static class TypeExtensions
     private static object? GetAdditionalTypeFromText(XLCellValue value, PropertyInfo? property = null)
     {
         if (property == null) return value.GetText();
-        
-        if (property.PropertyType == typeof(Guid) || property.PropertyType == typeof(Guid?))
-            return HandleGuid(value, property);
-
-        if (property.PropertyType == typeof(DateTime) || property.PropertyType == typeof(DateTime?))
-            return DateTime.TryParse(value.GetText(), out var dateTime) ? dateTime : default;
-
-        if (property.PropertyType == typeof(DateOnly) || property.PropertyType == typeof(DateOnly?))
-            return DateOnly.TryParse(value.GetText(), out var dateOnly) ? dateOnly : default;
 
-        var nullableUnderlyingType = Nullable.GetUnderlyingType(property.PropertyType);
-        if (property.PropertyType.IsEnum || (nullableUnderlyingType is { IsEnum: true }))
-            return HandleEnum(value, property, nullableUnderlyingType);
+        var pt = property.PropertyType;
+        switch (pt)
+        {
+            case var _ when pt == typeof(Guid) || pt == typeof(Guid?):
+                return HandleGuid(value, property);
+            case var _ when pt == typeof(DateTime) || pt == typeof(DateTime?):
+                return DateTime.TryParse(value.GetText(), out var dateValue) ? dateValue : default;
+            case var _ when pt == typeof(DateOnly) || pt == typeof(DateOnly?):
+                return DateOnly.TryParse(value.GetText(), out var dateOnlyValue) ? dateOnlyValue : default;
+            case { IsEnum: true }:
+            case var _ when Nullable.GetUnderlyingType(pt) is { IsEnum: true }:
+                return HandleEnum(value, property, Nullable.GetUnderlyingType(property.PropertyType));
+        }
         
         return value.GetText(); 
     }