diff --git a/plugins/Booking/src/EasyAbp.EShop.Plugins.Booking.Application.Contracts/EasyAbp/EShop/Orders/CreateOrderLineDtoExtensions.cs b/plugins/Booking/src/EasyAbp.EShop.Plugins.Booking.Application.Contracts/EasyAbp/EShop/Orders/CreateOrderLineDtoExtensions.cs index a21b8ede..9dc313c3 100644 --- a/plugins/Booking/src/EasyAbp.EShop.Plugins.Booking.Application.Contracts/EasyAbp/EShop/Orders/CreateOrderLineDtoExtensions.cs +++ b/plugins/Booking/src/EasyAbp.EShop.Plugins.Booking.Application.Contracts/EasyAbp/EShop/Orders/CreateOrderLineDtoExtensions.cs @@ -64,7 +64,7 @@ public static class CreateOrderLineDtoExtensions public static DateTime? FindBookingDate(this CreateOrderLineDto orderLine) { - return orderLine.GetProperty(BookingOrderProperties.OrderLineBookingDate); + return orderLine.FindDateTimeProperty(BookingOrderProperties.OrderLineBookingDate); } public static DateTime GetBookingDate(this CreateOrderLineDto orderLine) @@ -75,7 +75,7 @@ public static class CreateOrderLineDtoExtensions public static TimeSpan? FindBookingStartingTime(this CreateOrderLineDto orderLine) { - return orderLine.GetProperty(BookingOrderProperties.OrderLineBookingStartingTime); + return orderLine.FindTimeSpanProperty(BookingOrderProperties.OrderLineBookingStartingTime); } public static TimeSpan GetBookingStartingTime(this CreateOrderLineDto orderLine) @@ -86,7 +86,7 @@ public static class CreateOrderLineDtoExtensions public static TimeSpan? FindBookingDuration(this CreateOrderLineDto orderLine) { - return orderLine.GetProperty(BookingOrderProperties.OrderLineBookingDuration); + return orderLine.FindTimeSpanProperty(BookingOrderProperties.OrderLineBookingDuration); } public static TimeSpan GetBookingDuration(this CreateOrderLineDto orderLine) diff --git a/plugins/Booking/src/EasyAbp.EShop.Plugins.Booking.Application.Contracts/EasyAbp/EShop/Orders/HasExtraPropertiesExtensions.cs b/plugins/Booking/src/EasyAbp.EShop.Plugins.Booking.Application.Contracts/EasyAbp/EShop/Orders/HasExtraPropertiesExtensions.cs new file mode 100644 index 00000000..02318b4e --- /dev/null +++ b/plugins/Booking/src/EasyAbp.EShop.Plugins.Booking.Application.Contracts/EasyAbp/EShop/Orders/HasExtraPropertiesExtensions.cs @@ -0,0 +1,31 @@ +using System; +using Volo.Abp.Data; + +namespace EasyAbp.EShop.Orders; + +public static class HasExtraPropertiesExtensions +{ + public static DateTime? FindDateTimeProperty(this IHasExtraProperties extraProperties, string name) + { + var objValue = extraProperties.GetProperty(name); + + return objValue switch + { + null => null, + DateTime span => span, + _ => DateTime.Parse((string)objValue) + }; + } + + public static TimeSpan? FindTimeSpanProperty(this IHasExtraProperties extraProperties, string name) + { + var objValue = extraProperties.GetProperty(name); + + return objValue switch + { + null => null, + TimeSpan span => span, + _ => TimeSpan.Parse((string)objValue) + }; + } +} \ No newline at end of file diff --git a/plugins/Booking/src/EasyAbp.EShop.Plugins.Booking.Application.Contracts/EasyAbp/EShop/Orders/OrderLineExtensions.cs b/plugins/Booking/src/EasyAbp.EShop.Plugins.Booking.Application.Contracts/EasyAbp/EShop/Orders/OrderLineExtensions.cs index 35f1047a..c5cb1722 100644 --- a/plugins/Booking/src/EasyAbp.EShop.Plugins.Booking.Application.Contracts/EasyAbp/EShop/Orders/OrderLineExtensions.cs +++ b/plugins/Booking/src/EasyAbp.EShop.Plugins.Booking.Application.Contracts/EasyAbp/EShop/Orders/OrderLineExtensions.cs @@ -64,7 +64,7 @@ public static class OrderLineExtensions public static DateTime? FindBookingDate(this IOrderLine orderLine) { - return orderLine.GetProperty(BookingOrderProperties.OrderLineBookingDate); + return orderLine.FindDateTimeProperty(BookingOrderProperties.OrderLineBookingDate); } public static DateTime GetBookingDate(this IOrderLine orderLine) @@ -75,7 +75,7 @@ public static class OrderLineExtensions public static TimeSpan? FindBookingStartingTime(this IOrderLine orderLine) { - return orderLine.GetProperty(BookingOrderProperties.OrderLineBookingStartingTime); + return orderLine.FindTimeSpanProperty(BookingOrderProperties.OrderLineBookingStartingTime); } public static TimeSpan GetBookingStartingTime(this IOrderLine orderLine) @@ -86,7 +86,7 @@ public static class OrderLineExtensions public static TimeSpan? FindBookingDuration(this IOrderLine orderLine) { - return orderLine.GetProperty(BookingOrderProperties.OrderLineBookingDuration); + return orderLine.FindTimeSpanProperty(BookingOrderProperties.OrderLineBookingDuration); } public static TimeSpan GetBookingDuration(this IOrderLine orderLine)