From a9c455cad6400fd1bbb84cd01b33b9647e13704d Mon Sep 17 00:00:00 2001 From: "m.hamzei" Date: Mon, 26 May 2025 16:19:17 +0330 Subject: [PATCH 1/6] add DateTimeOffsetExtensions extension --- .../Extensions/DateTimeOffsetExtensions.cs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 Source/BSN.Commons/Extensions/DateTimeOffsetExtensions.cs diff --git a/Source/BSN.Commons/Extensions/DateTimeOffsetExtensions.cs b/Source/BSN.Commons/Extensions/DateTimeOffsetExtensions.cs new file mode 100644 index 0000000..38e45bb --- /dev/null +++ b/Source/BSN.Commons/Extensions/DateTimeOffsetExtensions.cs @@ -0,0 +1,19 @@ +using System; + +namespace BSN.Commons.Extensions +{ + // TODO: [BSN-COMMONS] Replace with BSN.Commons nuget package when published to github.com/bsn/commons + /// + /// Provides extension methods for DateTimeOffset. + /// + public static class DateTimeOffsetExtensions + { + /// + /// Converts a nullable DateTimeOffset to a nullable DateTime. + /// + public static DateTime? ToNullableDateTime(this DateTimeOffset? dateTimeOffset) + { + return dateTimeOffset?.DateTime; + } + } +} \ No newline at end of file From 171341d488fae1a66893c89652628c47005e7703 Mon Sep 17 00:00:00 2001 From: "m.hamzei" Date: Mon, 26 May 2025 17:02:37 +0330 Subject: [PATCH 2/6] remove TODO comment for nuget package replacement in DateTimeOffsetExtensions --- Source/BSN.Commons/Extensions/DateTimeOffsetExtensions.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/Source/BSN.Commons/Extensions/DateTimeOffsetExtensions.cs b/Source/BSN.Commons/Extensions/DateTimeOffsetExtensions.cs index 38e45bb..a554ae0 100644 --- a/Source/BSN.Commons/Extensions/DateTimeOffsetExtensions.cs +++ b/Source/BSN.Commons/Extensions/DateTimeOffsetExtensions.cs @@ -2,7 +2,6 @@ namespace BSN.Commons.Extensions { - // TODO: [BSN-COMMONS] Replace with BSN.Commons nuget package when published to github.com/bsn/commons /// /// Provides extension methods for DateTimeOffset. /// From 67acb34fbb2ef369668d8fc67443e308a81ec243 Mon Sep 17 00:00:00 2001 From: "m.hamzei" Date: Wed, 28 May 2025 12:58:31 +0330 Subject: [PATCH 3/6] refactor: update ToNullableDateTime method to ToDateTimeOrDefault with improved null handling --- .../BSN.Commons/Extensions/DateTimeOffsetExtensions.cs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Source/BSN.Commons/Extensions/DateTimeOffsetExtensions.cs b/Source/BSN.Commons/Extensions/DateTimeOffsetExtensions.cs index a554ae0..7bb321c 100644 --- a/Source/BSN.Commons/Extensions/DateTimeOffsetExtensions.cs +++ b/Source/BSN.Commons/Extensions/DateTimeOffsetExtensions.cs @@ -10,9 +10,15 @@ public static class DateTimeOffsetExtensions /// /// Converts a nullable DateTimeOffset to a nullable DateTime. /// - public static DateTime? ToNullableDateTime(this DateTimeOffset? dateTimeOffset) + /// The DateTimeOffset value to convert. + /// A nullable DateTime equivalent, or null if the input is null. + public static DateTime? ToDateTimeOrDefault(this DateTimeOffset? dateTimeOffset) { - return dateTimeOffset?.DateTime; + if (dateTimeOffset.HasValue) { + return (DateTime?)dateTimeOffset.Value.DateTime; + } + + return default(DateTime?); } } } \ No newline at end of file From 1cd317e7e388ad5534aad53f46f8b2e78fa37113 Mon Sep 17 00:00:00 2001 From: "m.hamzei" Date: Wed, 28 May 2025 17:06:01 +0330 Subject: [PATCH 4/6] refactor: centralize DateTime conversion logic for consistent handling of null/default values --- Source/BSN.Commons/Extensions/DateTimeOffsetExtensions.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Source/BSN.Commons/Extensions/DateTimeOffsetExtensions.cs b/Source/BSN.Commons/Extensions/DateTimeOffsetExtensions.cs index 7bb321c..eb8deec 100644 --- a/Source/BSN.Commons/Extensions/DateTimeOffsetExtensions.cs +++ b/Source/BSN.Commons/Extensions/DateTimeOffsetExtensions.cs @@ -8,7 +8,8 @@ namespace BSN.Commons.Extensions public static class DateTimeOffsetExtensions { /// - /// Converts a nullable DateTimeOffset to a nullable DateTime. + /// Centralizes DateTime conversion logic to maintain consistent default values + /// across the project, preventing inconsistencies in null/default datetime handling. /// /// The DateTimeOffset value to convert. /// A nullable DateTime equivalent, or null if the input is null. From 85c7cbc10ba8d9904b4322e3140c4587f7f56f64 Mon Sep 17 00:00:00 2001 From: "m.hamzei" Date: Wed, 28 May 2025 17:30:13 +0330 Subject: [PATCH 5/6] refactor: enhance documentation for DateTimeOffsetExtensions with detailed remarks --- .../BSN.Commons/Extensions/DateTimeOffsetExtensions.cs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Source/BSN.Commons/Extensions/DateTimeOffsetExtensions.cs b/Source/BSN.Commons/Extensions/DateTimeOffsetExtensions.cs index eb8deec..a09f062 100644 --- a/Source/BSN.Commons/Extensions/DateTimeOffsetExtensions.cs +++ b/Source/BSN.Commons/Extensions/DateTimeOffsetExtensions.cs @@ -8,9 +8,14 @@ namespace BSN.Commons.Extensions public static class DateTimeOffsetExtensions { /// - /// Centralizes DateTime conversion logic to maintain consistent default values - /// across the project, preventing inconsistencies in null/default datetime handling. + /// Provides consistent default DateTime values across the project through centralized conversion logic. /// + /// + /// This extension method provides a standardized way to convert DateTimeOffset to DateTime: + /// - Maintains consistent null handling across the project + /// - Optimized for use in LINQ and lambda expressions + /// - Ensures type-safe conversions in query projections + /// /// The DateTimeOffset value to convert. /// A nullable DateTime equivalent, or null if the input is null. public static DateTime? ToDateTimeOrDefault(this DateTimeOffset? dateTimeOffset) From 19564e3b8f3be99c1c5bd1fa05dd7819d6c87fda Mon Sep 17 00:00:00 2001 From: "m.hamzei" Date: Wed, 28 May 2025 17:36:37 +0330 Subject: [PATCH 6/6] refactor: update documentation for ToDateTimeOrDefault method with improved remarks --- Source/BSN.Commons/Extensions/DateTimeOffsetExtensions.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/BSN.Commons/Extensions/DateTimeOffsetExtensions.cs b/Source/BSN.Commons/Extensions/DateTimeOffsetExtensions.cs index a09f062..9ef489b 100644 --- a/Source/BSN.Commons/Extensions/DateTimeOffsetExtensions.cs +++ b/Source/BSN.Commons/Extensions/DateTimeOffsetExtensions.cs @@ -13,11 +13,11 @@ public static class DateTimeOffsetExtensions /// /// This extension method provides a standardized way to convert DateTimeOffset to DateTime: /// - Maintains consistent null handling across the project - /// - Optimized for use in LINQ and lambda expressions + /// - Optimized for use in LINQ and Lambda expressions /// - Ensures type-safe conversions in query projections /// /// The DateTimeOffset value to convert. - /// A nullable DateTime equivalent, or null if the input is null. + /// A nullable DateTime equivalent. public static DateTime? ToDateTimeOrDefault(this DateTimeOffset? dateTimeOffset) { if (dateTimeOffset.HasValue) {