Bläddra i källkod

Let's keep everything together

Piotr Czajkowski 5 dagar sedan
förälder
incheckning
685384cbaa
1 ändrade filer med 11 tillägg och 12 borttagningar
  1. 11 12
      ExcelORM/ExcelORM/TypeExtensions.cs

+ 11 - 12
ExcelORM/ExcelORM/TypeExtensions.cs

@@ -34,20 +34,19 @@ public static class TypeExtensions
 
         switch (property.PropertyType)
         {
-            case var _ when property.PropertyType == typeof(Guid):
-            case var _ when property.PropertyType == typeof(Guid?):
+            case var guid when guid == typeof(Guid):
+            case var guidNull when guidNull == typeof(Guid?):
                 return HandleGuid(value, property);
-            case var _ when property.PropertyType == typeof(DateTime):
-            case var _ when property.PropertyType == typeof(DateTime?):
-                return DateTime.TryParse(value.GetText(), out var dateTime) ? dateTime : default;
-            case var _ when property.PropertyType == typeof(DateOnly):
-            case var _ when property.PropertyType == typeof(DateOnly?):
-                return DateOnly.TryParse(value.GetText(), out var dateOnly) ? dateOnly : default;
+            case var dateTime when dateTime == typeof(DateTime):
+            case var dateTimeNull when dateTimeNull == typeof(DateTime?):
+                return DateTime.TryParse(value.GetText(), out var dateValue) ? dateValue : default;
+            case var dateOnly when dateOnly == typeof(DateOnly):
+            case var dateOnlyNull when dateOnlyNull == typeof(DateOnly?):
+                return DateOnly.TryParse(value.GetText(), out var dateOnlyValue) ? dateOnlyValue : default;
+            case { IsEnum: true }:
+            case var enumNull when Nullable.GetUnderlyingType(enumNull) is { IsEnum: true }:
+                return HandleEnum(value, property, Nullable.GetUnderlyingType(property.PropertyType));
         }
-
-        var nullableUnderlyingType = Nullable.GetUnderlyingType(property.PropertyType);
-        if (property.PropertyType.IsEnum || (nullableUnderlyingType is { IsEnum: true }))
-            return HandleEnum(value, property, nullableUnderlyingType);
         
         return value.GetText(); 
     }