4 İşlemeler fb0d9f638b ... ecc3e8591d

Yazar SHA1 Mesaj Tarih
  Piotr Czajkowski ecc3e8591d More consise 10 ay önce
  Piotr Czajkowski fd3def7108 Cleaner 10 ay önce
  Piotr Czajkowski 685384cbaa Let's keep everything together 10 ay önce
  Piotr Czajkowski f44327a440 Cosmetics 10 ay önce
1 değiştirilmiş dosya ile 13 ekleme ve 12 silme
  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(); 
     }