From c55043f1d5f081bc7b9f4d9c875ab162edd69d1e Mon Sep 17 00:00:00 2001 From: Behrad Zarei Date: Tue, 15 Oct 2024 13:49:16 +0330 Subject: [PATCH 1/4] Add DynamicParametersExtensions --- Dapper/DynamicParametersExtensions.cs | 57 +++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 Dapper/DynamicParametersExtensions.cs diff --git a/Dapper/DynamicParametersExtensions.cs b/Dapper/DynamicParametersExtensions.cs new file mode 100644 index 000000000..60c4b0348 --- /dev/null +++ b/Dapper/DynamicParametersExtensions.cs @@ -0,0 +1,57 @@ +using System.Reflection; + +namespace Dapper +{ + /// + /// An Extention Class to DynamicParameters + /// + + public static class DynamicParametersExtensions + { + /// + /// Add Parameter if exists + /// + /// Extending DynamicParameter + /// Parameter Name + /// Parameter with type of dynamic + public static void AddIfExists(this DynamicParameters dp, string paramName, dynamic? param) + { + if (param is not null) + { + var pStr = param is string; + if (pStr) + { + if (string.IsNullOrEmpty(param)) + { + return; + } + } + + dp.Add(paramName, param); + } + } + + /// + /// Add members of class as parameter; if the member is not null + /// + /// Generic Type + /// Extending DynamicParameters + /// + public static void AddParametersIfExists(this DynamicParameters dp, T param) + { + if (param is not null) + { + foreach (PropertyInfo prop in param.GetType().GetProperties()) + { + if ( + !prop.Name.ToLower().Contains("monitoringtype") + && !prop.Name.ToLower().Contains("projecttype") + ) + { + AddIfExists(dp, paramName: prop.Name, param: prop.GetValue(param)); + } + } + } + } + } +} From 167da196f7e3568887c6dda5bd4d96a88bc9e46b Mon Sep 17 00:00:00 2001 From: Behrad Zarei Date: Tue, 15 Oct 2024 16:58:59 +0330 Subject: [PATCH 2/4] Update API --- Dapper/PublicAPI.Unshipped.txt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Dapper/PublicAPI.Unshipped.txt b/Dapper/PublicAPI.Unshipped.txt index 91b0e1a43..1bc9f1a27 100644 --- a/Dapper/PublicAPI.Unshipped.txt +++ b/Dapper/PublicAPI.Unshipped.txt @@ -1 +1,4 @@ -#nullable enable \ No newline at end of file +#nullable enable +Dapper.DynamicParametersExtensions +static Dapper.DynamicParametersExtensions.AddIfExists(this Dapper.DynamicParameters! dp, string! paramName, dynamic? param) -> void +static Dapper.DynamicParametersExtensions.AddParametersIfExists(this Dapper.DynamicParameters! dp, T param) -> void \ No newline at end of file From 107b309f7247cf9be388237c288d18fc69af348d Mon Sep 17 00:00:00 2001 From: Behrad Zarei Date: Tue, 15 Oct 2024 17:00:18 +0330 Subject: [PATCH 3/4] Remove unnecessary if condition --- Dapper/DynamicParametersExtensions.cs | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/Dapper/DynamicParametersExtensions.cs b/Dapper/DynamicParametersExtensions.cs index 60c4b0348..022818aad 100644 --- a/Dapper/DynamicParametersExtensions.cs +++ b/Dapper/DynamicParametersExtensions.cs @@ -1,4 +1,4 @@ -using System.Reflection; +using System.Reflection; namespace Dapper { @@ -43,13 +43,9 @@ public static void AddParametersIfExists(this DynamicParameters dp, T param) { foreach (PropertyInfo prop in param.GetType().GetProperties()) { - if ( - !prop.Name.ToLower().Contains("monitoringtype") - && !prop.Name.ToLower().Contains("projecttype") - ) - { - AddIfExists(dp, paramName: prop.Name, param: prop.GetValue(param)); - } + + AddIfExists(dp, paramName: prop.Name, param: prop.GetValue(param)); + } } } From e4c7b5dc3b92cb6b32de64b4febf234e0786a5b1 Mon Sep 17 00:00:00 2001 From: Behrad Zarei Date: Tue, 15 Oct 2024 17:18:18 +0330 Subject: [PATCH 4/4] Remove unnecessary if condition --- Dapper/DynamicParametersExtensions.cs | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/Dapper/DynamicParametersExtensions.cs b/Dapper/DynamicParametersExtensions.cs index 022818aad..bbd41f762 100644 --- a/Dapper/DynamicParametersExtensions.cs +++ b/Dapper/DynamicParametersExtensions.cs @@ -6,7 +6,7 @@ namespace Dapper /// An Extention Class to DynamicParameters /// - public static class DynamicParametersExtensions + internal static class DynamicParametersExtensions { /// /// Add Parameter if exists @@ -14,21 +14,13 @@ public static class DynamicParametersExtensions /// Extending DynamicParameter /// Parameter Name /// Parameter with type of dynamic - public static void AddIfExists(this DynamicParameters dp, string paramName, dynamic? param) + internal static void AddIfExists(this DynamicParameters dp, string paramName, dynamic? param) { - if (param is not null) + if (param is null) { - var pStr = param is string; - if (pStr) - { - if (string.IsNullOrEmpty(param)) - { - return; - } - } - - dp.Add(paramName, param); + return; } + dp.Add(paramName, param); } ///