1
0

4 Revīzijas fb0d9f638b ... ecc3e8591d

Autors SHA1 Ziņojums Datums
  Piotr Czajkowski ecc3e8591d More consise 10 mēneši atpakaļ
  Piotr Czajkowski fd3def7108 Cleaner 10 mēneši atpakaļ
  Piotr Czajkowski 685384cbaa Let's keep everything together 10 mēneši atpakaļ
  Piotr Czajkowski f44327a440 Cosmetics 10 mēneši atpakaļ
1 mainītis faili ar 13 papildinājumiem un 12 dzēšanām
  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(); 
     }