From c2cbc96d838c836c7ffd9b485fcc1882c4bfef12 Mon Sep 17 00:00:00 2001 From: Wolfgang Ludger Hottgenroth Date: Wed, 8 Dec 2021 16:10:00 +0100 Subject: [PATCH] add the extended exception --- .gitlab-ci.yml | 4 +--- ClientExtApiException.cs | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 3 deletions(-) create mode 100644 ClientExtApiException.cs diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 82b6b92..2379f43 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -22,11 +22,9 @@ generateclient_dotnetcore: - INSTANCE_SPECIFIER=`cat instance.txt` - API_MAJOR_VERSION=`cat api_major_version.txt` - API_VERSION=`cat api_version.txt | awk -F- '{print $1}'` - - ls -lR output - - echo output/src/$CLIENT_PACKAGE_PREFIX.$CI_PROJECT_NAME.$INSTANCE_SPECIFIER.v$API_MAJOR_VERSION/Model/ErrorResultObject.cs - - ls -l output/src/$CLIENT_PACKAGE_PREFIX.$CI_PROJECT_NAME.$INSTANCE_SPECIFIER.v$API_MAJOR_VERSION/Model/ErrorResultObject.cs - if [ -f output/src/$CLIENT_PACKAGE_PREFIX.$CI_PROJECT_NAME.$INSTANCE_SPECIFIER.v$API_MAJOR_VERSION/Model/ErrorResultObject.cs ]; then echo "ErrorResultObject.cs exists, start the postprocessing"; + cat ClientExtApiException.cs | sed -e 's,NAMESPACEPLACEHOLDER,'$CLIENT_PACKAGE_PREFIX.$CI_PROJECT_NAME.$INSTANCE_SPECIFIER.v$API_MAJOR_VERSION',g' > output/src/$CLIENT_PACKAGE_PREFIX.$CI_PROJECT_NAME.$INSTANCE_SPECIFIER.v$API_MAJOR_VERSION/Client; fi - mv output output_dotnetcore diff --git a/ClientExtApiException.cs b/ClientExtApiException.cs new file mode 100644 index 0000000..095934f --- /dev/null +++ b/ClientExtApiException.cs @@ -0,0 +1,33 @@ +#pragma warning disable 1591 + + +using System; +using NAMESPACEPLACEHOLDER.Model; +using Newtonsoft.Json; + + +namespace NAMESPACEPLACEHOLDER.Client { + class ExtApiException: ApiException { + public int ErrorCode { get; } + public int ServiceErrorCode { get; } + public String OffensiveData { get; } + + public ExtApiException(ErrorResultObject ero): base(ero.errorCode, ero.errorMessage, ero) { + ErrorCode = ero.errorCode; + ServiceErrorCode = ero.serviceErrorCode; + OffensiveData = ero.offensiveData; + } + + public static ExceptionFactory ExtExceptionFactory = (methodName, response) => { + var status = (int) response.StatusCode; + if (status >= 400) { + var ero = JsonConvert.DeserializeObject(response.RawContent); + return new ExtApiException(ero); + } + return null; + }; + } +} + + +#pragma warning restore 1591