1
0

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(); 
     }