4 Комити fb0d9f638b ... ecc3e8591d

Аутор SHA1 Порука Датум
  Piotr Czajkowski ecc3e8591d More consise пре 10 месеци
  Piotr Czajkowski fd3def7108 Cleaner пре 10 месеци
  Piotr Czajkowski 685384cbaa Let's keep everything together пре 10 месеци
  Piotr Czajkowski f44327a440 Cosmetics пре 10 месеци
1 измењених фајлова са 13 додато и 12 уклоњено
  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(); 
     }