From e8fadbb558af7200b9979e1c8c4713bd746fd16c Mon Sep 17 00:00:00 2001 From: cedricboon Date: Fri, 22 Feb 2019 10:38:52 +0100 Subject: [PATCH 1/2] Backwards compatibility for null-parameters In previous versions it was possible to pass null parameters to the proxy operations. With the EncodeParam operation the null parameters cause a NullReferenceException on the value.ToString operation. This change adds a Safe Navigation Operation to prevent the NullReferenceException . --- WebApiProxy.Tasks/Templates/CSharpProxyTemplate.tt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/WebApiProxy.Tasks/Templates/CSharpProxyTemplate.tt b/WebApiProxy.Tasks/Templates/CSharpProxyTemplate.tt index 09fc389..ac0e590 100644 --- a/WebApiProxy.Tasks/Templates/CSharpProxyTemplate.tt +++ b/WebApiProxy.Tasks/Templates/CSharpProxyTemplate.tt @@ -210,7 +210,7 @@ namespace <#= Configuration.Namespace#>.Clients /// protected string EncodeParam(T value) { - return System.Net.WebUtility.UrlEncode(value.ToString()); + return System.Net.WebUtility.UrlEncode(value?.ToString()); } /// @@ -218,7 +218,7 @@ namespace <#= Configuration.Namespace#>.Clients /// protected string EncodeParam(DateTime value) { - return System.Net.WebUtility.UrlEncode(value.ToString("o")); + return System.Net.WebUtility.UrlEncode(value?.ToString("o")); } /// @@ -226,7 +226,7 @@ namespace <#= Configuration.Namespace#>.Clients /// protected string EncodeParam(DateTimeOffset value) { - return System.Net.WebUtility.UrlEncode(value.ToString("o")); + return System.Net.WebUtility.UrlEncode(value?.ToString("o")); } /// From 82d3309d6d54df7fa962d61a6bbd956c429059ac Mon Sep 17 00:00:00 2001 From: cedricboon Date: Fri, 22 Feb 2019 12:29:29 +0100 Subject: [PATCH 2/2] Update CSharpProxyTemplate.tt --- WebApiProxy.Tasks/Templates/CSharpProxyTemplate.tt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/WebApiProxy.Tasks/Templates/CSharpProxyTemplate.tt b/WebApiProxy.Tasks/Templates/CSharpProxyTemplate.tt index ac0e590..d309c8a 100644 --- a/WebApiProxy.Tasks/Templates/CSharpProxyTemplate.tt +++ b/WebApiProxy.Tasks/Templates/CSharpProxyTemplate.tt @@ -218,7 +218,7 @@ namespace <#= Configuration.Namespace#>.Clients /// protected string EncodeParam(DateTime value) { - return System.Net.WebUtility.UrlEncode(value?.ToString("o")); + return System.Net.WebUtility.UrlEncode(value.ToString("o")); } /// @@ -226,7 +226,7 @@ namespace <#= Configuration.Namespace#>.Clients /// protected string EncodeParam(DateTimeOffset value) { - return System.Net.WebUtility.UrlEncode(value?.ToString("o")); + return System.Net.WebUtility.UrlEncode(value.ToString("o")); } ///