|
@@ -31,19 +31,20 @@ public static class TypeExtensions
|
|
|
private static object? GetAdditionalTypeFromText(XLCellValue value, PropertyInfo? property = null)
|
|
private static object? GetAdditionalTypeFromText(XLCellValue value, PropertyInfo? property = null)
|
|
|
{
|
|
{
|
|
|
if (property == null) return value.GetText();
|
|
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();
|
|
return value.GetText();
|
|
|
}
|
|
}
|