Add LocalWebRequest helper class for managing Genesis web requests:
- Introduce methods for HTTP POST, GET, DELETE operations with JSON, binary, and custom headers support. - Add response handling for status codes, exceptions, content retrieval, and asynchronous operations. - Include string and object extension methods for HTTP requests. - Provide initial implementation for uploading binary data and error handling stubbed for future enhancement.
This commit is contained in:
parent
2e4741b929
commit
cf41a26a0a
@ -0,0 +1,650 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Net.Http.Headers;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace TBF.Rig.RegisterReaders.GenesisRegReader.communication.Genesis.SoftwareAccessHelper
|
||||
{
|
||||
/// <summary>
|
||||
/// Web request
|
||||
/// </summary>
|
||||
public static class LocalWebRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// Web request with asynchronous operation and response code or exception response, json object input and/or dictionary
|
||||
/// </summary>
|
||||
/// <param name="url"></param>
|
||||
/// <param name="responseCode"></param>
|
||||
/// <param name="ex"></param>
|
||||
/// <param name="timeoutMs"></param>
|
||||
/// <param name="json"></param>
|
||||
/// <param name="header"></param>
|
||||
/// <returns></returns>
|
||||
public static Boolean PostRequestAsync(String url, ref Int32 responseCode, ref Exception ex, Int32? timeoutMs = null, Object json = null, Dictionary<String, String> header = null)
|
||||
{
|
||||
try
|
||||
{
|
||||
var r = PostRequestAndGetResponseAsync(url, timeoutMs, json, header);
|
||||
responseCode = r.StatusCode.GetHashCode();
|
||||
if (r.StatusCode == HttpStatusCode.OK)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (r.StatusCode == HttpStatusCode.InternalServerError)
|
||||
{
|
||||
ex = new Exception(r.Content);
|
||||
}
|
||||
|
||||
}
|
||||
catch (Exception error)
|
||||
{
|
||||
ex = error;
|
||||
}
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Web request with asynchronous operation and true/false return, json object input and/or dictionary
|
||||
/// </summary>
|
||||
/// <param name="url"></param>
|
||||
/// <param name="timeoutMs"></param>
|
||||
/// <param name="json"></param>
|
||||
/// <param name="header"></param>
|
||||
/// <returns></returns>
|
||||
public static Boolean PostRequestAsync(String url, Int32? timeoutMs = null, Object json = null, Dictionary<String, String> header = null)
|
||||
{
|
||||
try
|
||||
{
|
||||
var r = PostRequestAndGetResponseAsync(url, timeoutMs, json, header);
|
||||
if (r.StatusCode == HttpStatusCode.OK)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
// Log
|
||||
}
|
||||
return false;
|
||||
|
||||
}
|
||||
/// <summary>
|
||||
/// Web request with asynchronous operation with string return, json object input and/or dictionary
|
||||
/// </summary>
|
||||
/// <param name="url"></param>
|
||||
/// <param name="timeoutMs"></param>
|
||||
/// <param name="json"></param>
|
||||
/// <param name="header"></param>
|
||||
/// <returns></returns>
|
||||
public static String PostRequestAsyncAndGetContent(String url, Int32? timeoutMs = null, Object json = null, Dictionary<String, String> header = null)
|
||||
{
|
||||
try
|
||||
{
|
||||
var r = PostRequestAndGetResponseAsync(url, timeoutMs, json, header);
|
||||
if (r.StatusCode == HttpStatusCode.OK)
|
||||
{
|
||||
return r.Content;
|
||||
}
|
||||
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
// Log
|
||||
}
|
||||
return string.Empty;
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Web request with asynchronous operation, binary file byte array input, response string output
|
||||
/// </summary>
|
||||
/// <param name="url"></param>
|
||||
/// <param name="fileName"></param>
|
||||
/// <param name="content"></param>
|
||||
/// <param name="response"></param>
|
||||
/// <param name="timeoutMs"></param>
|
||||
/// <returns></returns>
|
||||
public static Boolean PostBinaryFileRequestAsync(String url, String fileName, Byte[] content, out String response, Int32? timeoutMs = null)
|
||||
{
|
||||
response = null;
|
||||
return false;
|
||||
// try
|
||||
// {
|
||||
//
|
||||
// var client = new RestClient(url);
|
||||
// //WebRequest.DefaultWebProxy = null;
|
||||
// var request = new RestRequest(Method.POST);
|
||||
//
|
||||
// ServicePointManager.Expect100Continue = false;
|
||||
//
|
||||
//
|
||||
// request.AddHeader("Content-Type", "multipart/form-data");
|
||||
//
|
||||
//
|
||||
// request.Files.Add(new FileParameter
|
||||
// {
|
||||
// Name = "file",
|
||||
// Writer = (s) =>
|
||||
// {
|
||||
// var stream = new MemoryStream(content);
|
||||
// stream.CopyTo(s);
|
||||
// stream.Dispose();
|
||||
// },
|
||||
// FileName = fileName,
|
||||
// ContentType = "multipart/form-data",
|
||||
// ContentLength = content.Length
|
||||
// });
|
||||
//
|
||||
//
|
||||
// var r = client.ExecuteAsPost(request, Method.POST.ToString());
|
||||
// response = r.Content;
|
||||
// return r.StatusCode == HttpStatusCode.OK;
|
||||
//
|
||||
//
|
||||
// }
|
||||
// catch (Exception)
|
||||
// {
|
||||
// response = string.Empty;
|
||||
// return false;
|
||||
//
|
||||
// }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Web request with asynchronous operation, binary file input
|
||||
/// </summary>
|
||||
/// <param name="url"></param>
|
||||
/// <param name="fileName"></param>
|
||||
/// <param name="content"></param>
|
||||
/// <param name="timeoutMs"></param>
|
||||
/// <returns></returns>
|
||||
public static Boolean PostBinaryFileRequestAsync(String url, String fileName, Byte[] content, Int32? timeoutMs = null)
|
||||
{
|
||||
return false;
|
||||
// try
|
||||
// {
|
||||
//
|
||||
// var client = new RestClient(url);
|
||||
// // WebRequest.DefaultWebProxy = null;
|
||||
// var request = new RestRequest(Method.POST);
|
||||
//
|
||||
// ServicePointManager.Expect100Continue = false;
|
||||
//
|
||||
//
|
||||
// request.AddHeader("Content-Type", "multipart/form-data");
|
||||
//
|
||||
//
|
||||
// request.Files.Add(new FileParameter
|
||||
// {
|
||||
// Name = "file",
|
||||
// Writer = (s) =>
|
||||
// {
|
||||
// var stream = new MemoryStream(content);
|
||||
// stream.CopyTo(s);
|
||||
// stream.Dispose();
|
||||
// },
|
||||
// FileName = fileName,
|
||||
// ContentType = "multipart/form-data",
|
||||
// ContentLength = content.Length
|
||||
// });
|
||||
//
|
||||
//
|
||||
// var r = client.ExecuteAsPost(request, Method.POST.ToString());
|
||||
// return r.StatusCode == HttpStatusCode.OK;
|
||||
//
|
||||
//
|
||||
// }
|
||||
// catch (Exception)
|
||||
// {
|
||||
// return false;
|
||||
//
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Web request with asynchronous operation
|
||||
/// </summary>
|
||||
/// <param name="url"></param>
|
||||
/// <param name="timeoutMs"></param>
|
||||
/// <param name="files"></param>
|
||||
/// <param name="header"></param>
|
||||
/// <returns></returns>
|
||||
public static IRestResponse PostBinaryRequestAndGetResponseAsync(String url, Int32? timeoutMs = null,
|
||||
Dictionary<String, String> files = null, Dictionary<String, String> header = null)
|
||||
{
|
||||
// try
|
||||
// {
|
||||
//
|
||||
// var client = new RestClient(url);
|
||||
// //WebRequest.DefaultWebProxy = null;
|
||||
// var request = new RestRequest(Method.POST);
|
||||
//
|
||||
// ServicePointManager.Expect100Continue = false;
|
||||
//
|
||||
// if (header != null)
|
||||
// {
|
||||
// foreach (var item in header)
|
||||
// {
|
||||
// if (item.Key != "Content-Type" && item.Key != "Accept")
|
||||
// {
|
||||
// request.AddHeader(item.Key, item.Value);
|
||||
// }
|
||||
//
|
||||
// }
|
||||
//
|
||||
// }
|
||||
//
|
||||
// request.AddHeader("Content-Type", "multipart/form-data");
|
||||
//
|
||||
// if (files != null)
|
||||
// {
|
||||
// foreach (var item in files)
|
||||
// {
|
||||
// request.AddFile(item.Key, item.Value);
|
||||
// }
|
||||
//
|
||||
// }
|
||||
//
|
||||
// var r = client.ExecuteAsPost(request, Method.POST.ToString());
|
||||
// return r;
|
||||
//
|
||||
//
|
||||
// }
|
||||
// catch (Exception error)
|
||||
// {
|
||||
// return new RestResponse
|
||||
// {
|
||||
// StatusCode = HttpStatusCode.InternalServerError,
|
||||
// Content = error.ToString()
|
||||
// };
|
||||
//
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Post Request Async
|
||||
/// </summary>
|
||||
/// <remarks date="2024-Sep-09" author="Stoyan Slatev">
|
||||
/// - Initial.
|
||||
/// </remarks>
|
||||
/// <param name="url"></param>
|
||||
/// <param name="timeoutMs"></param>
|
||||
/// <param name="json"></param>
|
||||
/// <param name="httpStatus"></param>
|
||||
/// <returns></returns>
|
||||
public static String PostRequestAsync(String url, Double timeoutMs, out HttpStatusCode httpStatus, Object json = null)
|
||||
{
|
||||
try
|
||||
{
|
||||
var httpClient = new HttpClient();
|
||||
|
||||
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
|
||||
httpClient.Timeout = TimeSpan.FromMilliseconds(timeoutMs);
|
||||
|
||||
var postedJson = JsonConvert.SerializeObject(json, Formatting.Indented);
|
||||
var postedBody = new StringContent(postedJson);
|
||||
postedBody.Headers.ContentType = new MediaTypeWithQualityHeaderValue("application/json");
|
||||
var posted = httpClient
|
||||
.PostAsync(url, postedBody)
|
||||
.Result;
|
||||
|
||||
httpStatus = posted.StatusCode;
|
||||
return posted.Content.ReadAsStringAsync().Result;
|
||||
}
|
||||
catch (Exception error)
|
||||
{
|
||||
httpStatus = HttpStatusCode.ServiceUnavailable;
|
||||
return error.Message;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Web request
|
||||
/// </summary>
|
||||
/// <param name="url"></param>
|
||||
/// <param name="httpStatus"></param>
|
||||
/// <param name="timeoutMs"></param>
|
||||
/// <returns></returns>
|
||||
public static String GetRequest(String url, Double timeoutMs, out HttpStatusCode httpStatus)
|
||||
{
|
||||
|
||||
try
|
||||
{
|
||||
var httpClient = new HttpClient();
|
||||
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
|
||||
|
||||
httpClient.Timeout = TimeSpan.FromMilliseconds(timeoutMs);
|
||||
var response = httpClient
|
||||
.GetAsync(url)
|
||||
.Result;
|
||||
|
||||
httpStatus = response.StatusCode;
|
||||
return response.Content.ReadAsStringAsync().Result;
|
||||
}
|
||||
catch (Exception error)
|
||||
{
|
||||
httpStatus = HttpStatusCode.ServiceUnavailable;
|
||||
return error.Message;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Web request with asynchronous operation
|
||||
/// </summary>
|
||||
/// <param name="url"></param>
|
||||
/// <param name="timeoutMs"></param>
|
||||
/// <param name="json"></param>
|
||||
/// <param name="header"></param>
|
||||
/// <returns></returns>
|
||||
public static IRestResponse PostRequestAndGetResponseAsync(String url, Int32? timeoutMs = null, Object json = null,
|
||||
Dictionary<String, String> header = null)
|
||||
{
|
||||
// try
|
||||
// {
|
||||
//
|
||||
// var client = new RestClient(url);
|
||||
// client.AddDefaultHeader("Accept", "application/json");
|
||||
// //WebRequest.DefaultWebProxy = null;
|
||||
// ServicePointManager.Expect100Continue = false;
|
||||
// var request = new RestRequest(Method.POST);
|
||||
//
|
||||
//
|
||||
// if (header != null)
|
||||
// {
|
||||
// foreach (var item in header)
|
||||
// {
|
||||
// if (item.Key != "Content-Type" && item.Key != "Accept")
|
||||
// {
|
||||
// request.AddHeader(item.Key, item.Value);
|
||||
// }
|
||||
//
|
||||
// }
|
||||
// }
|
||||
// request.AddHeader("Content-Type", "application/json");
|
||||
// request.AddHeader("Accept", "application/json");
|
||||
//
|
||||
// if (json != null)
|
||||
// {
|
||||
// request.AddJsonBody(json);
|
||||
// }
|
||||
//
|
||||
// var r = client.ExecuteAsPost(request, Method.POST.ToString());
|
||||
// return r;
|
||||
// }
|
||||
// catch (Exception error)
|
||||
// {
|
||||
// return new RestResponse
|
||||
// {
|
||||
// StatusCode = HttpStatusCode.InternalServerError,
|
||||
// Content = error.ToString()
|
||||
// };
|
||||
// }
|
||||
}
|
||||
|
||||
#region HTTP String extensions
|
||||
public static HttpResponse<T> DeleteAsJson<T>(this String url, Object json = null, Action<RestRequestHeaders> headersHandler = null, Int32? timeoutMs = null)
|
||||
{
|
||||
return Method.DELETE.AsJson<T>(url, headersHandler, json, timeoutMs);
|
||||
}
|
||||
|
||||
public static HttpResponse<T> GetAsJson<T>(this String url, Object json = null, Action<RestRequestHeaders> headersHandler = null, Int32? timeoutMs = null)
|
||||
{
|
||||
return Method.GET.AsJson<T>(url, headersHandler, json, timeoutMs);
|
||||
}
|
||||
|
||||
public static HttpResponse<T> PostAsJson<T>(this String url, Object json = null, Action<RestRequestHeaders> headersHandler = null, Int32? timeoutMs = null)
|
||||
{
|
||||
return Method.POST.AsJson<T>(url, headersHandler, json, timeoutMs);
|
||||
}
|
||||
|
||||
public static HttpResponse<T> PutAsJson<T>(this String url, Object json = null, Action<RestRequestHeaders> headersHandler = null, Int32? timeoutMs = null)
|
||||
{
|
||||
return Method.PUT.AsJson<T>(url, headersHandler, json, timeoutMs);
|
||||
}
|
||||
#endregion HTTP String extensions
|
||||
|
||||
#region HTTP Object extensions
|
||||
public static HttpResponse<T> DeleteAsJson<T>(this Object json, String url, Action<RestRequestHeaders> headersHandler = null, Int32? timeoutMs = null)
|
||||
{
|
||||
return Method.DELETE.AsJson<T>(url, headersHandler, json, timeoutMs);
|
||||
}
|
||||
|
||||
public static HttpResponse<T> GetAsJson<T>(this Object json, String url, Action<RestRequestHeaders> headersHandler = null, Int32? timeoutMs = null)
|
||||
{
|
||||
return Method.GET.AsJson<T>(url, headersHandler, json, timeoutMs);
|
||||
}
|
||||
|
||||
public static HttpResponse<T> GetAsJson<T>(String url, Action<RestRequestHeaders> headersHandler = null, Int32? timeoutMs = null)
|
||||
{
|
||||
return Method.GET.AsJson<T>(url, headersHandler, null, timeoutMs);
|
||||
}
|
||||
|
||||
public static HttpResponse<T> PostAsJson<T>(this Object json, String url, Action<RestRequestHeaders> headersHandler = null, Int32? timeoutMs = null)
|
||||
{
|
||||
return Method.POST.AsJson<T>(url, headersHandler, json, timeoutMs);
|
||||
}
|
||||
|
||||
public static HttpResponse<T> PutAsJson<T>(this Object json, String url, Action<RestRequestHeaders> headersHandler = null, Int32? timeoutMs = null)
|
||||
{
|
||||
return Method.PUT.AsJson<T>(url, headersHandler, json, timeoutMs);
|
||||
}
|
||||
#endregion HTTP Object extensions
|
||||
|
||||
/// <summary>
|
||||
/// Web request
|
||||
/// </summary>
|
||||
/// <param name="url"></param>
|
||||
/// <param name="timeoutMs"></param>
|
||||
/// <param name="header"></param>
|
||||
/// <param name="isRetry"></param>
|
||||
/// <returns></returns>
|
||||
public static String DeleteRequest(String url, Int32? timeoutMs = null, Dictionary<String, String> header = null, Boolean isRetry = false)
|
||||
{
|
||||
var ret = DeleteRequestWithError(url, out var temp, timeoutMs, header, isRetry);
|
||||
if (temp != 200)
|
||||
{
|
||||
throw new ApplicationException($"WebRequest Status {temp}");
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Web request with asynchronous operation, error code response
|
||||
/// </summary>
|
||||
/// <param name="url"></param>
|
||||
/// <param name="errorCode"></param>
|
||||
/// <param name="timeoutMs"></param>
|
||||
/// <param name="header"></param>
|
||||
/// <param name="isRetry"></param>
|
||||
/// <returns></returns>
|
||||
public static String DeleteRequestWithError(String url, out Int32 errorCode, Int32? timeoutMs = null, Dictionary<String, String> header = null, Boolean isRetry = false)
|
||||
{
|
||||
var client = new RestClient(url);
|
||||
var request = new RestRequest(Method.DELETE);
|
||||
ServicePointManager.Expect100Continue = false;
|
||||
if (!timeoutMs.HasValue)
|
||||
{
|
||||
timeoutMs = 800;
|
||||
}
|
||||
|
||||
request.Timeout = timeoutMs.Value;
|
||||
|
||||
if (header != null)
|
||||
{
|
||||
foreach (var item in header)
|
||||
{
|
||||
if (item.Key != "Accept")
|
||||
{
|
||||
request.AddHeader(item.Key, item.Value);
|
||||
}
|
||||
}
|
||||
}
|
||||
request.AddHeader("Accept", "application/json");
|
||||
|
||||
var r = client.Execute(request);
|
||||
errorCode = r.StatusCode.GetHashCode();
|
||||
if (r.StatusCode == HttpStatusCode.OK)
|
||||
{
|
||||
return r.Content;
|
||||
}
|
||||
|
||||
if (r.StatusCode != 0)
|
||||
return r.Content;
|
||||
|
||||
return !isRetry ? DeleteRequest(url, timeoutMs, header, true) : r.Content;
|
||||
}
|
||||
/// <summary>
|
||||
/// Web request
|
||||
/// </summary>
|
||||
/// <param name="url"></param>
|
||||
/// <param name="timeoutMs"></param>
|
||||
/// <param name="header"></param>
|
||||
/// <param name="isRetry"></param>
|
||||
/// <returns></returns>
|
||||
public static String GetRequest(String url, Int32? timeoutMs = null, Dictionary<String, String> header = null, Boolean isRetry = false)
|
||||
{
|
||||
//if (true && (url.Contains("sla12iis01/MeterProcessState") || url.Contains("sla12iis01.emea.sensus.net/MeterProcessState")))
|
||||
//{
|
||||
// url = url.Replace("sla12iis01/MeterProcessState", "delaz1web01/MeterProcessState").Replace("sla12iis01.emea.sensus.net/MeterProcessState", "delaz1web01/MeterProcessState")
|
||||
//}
|
||||
var ret = GetRequestWithError(url, out var temp, timeoutMs, header, isRetry);
|
||||
if (temp != 200)
|
||||
{
|
||||
throw new ApplicationException($"WebRequest Status {temp}");
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Web request with asynchronous operation, error code response
|
||||
/// </summary>
|
||||
/// <param name="url"></param>
|
||||
/// <param name="errorCode"></param>
|
||||
/// <param name="timeoutMs"></param>
|
||||
/// <param name="header"></param>
|
||||
/// <param name="isRetry"></param>
|
||||
/// <returns></returns>
|
||||
public static String GetRequestWithError(String url, out Int32 errorCode, Int32? timeoutMs = null, Dictionary<String, String> header = null, Boolean isRetry = false)
|
||||
{
|
||||
|
||||
var client = new RestClient(url);
|
||||
var request = new RestRequest(Method.GET);
|
||||
ServicePointManager.Expect100Continue = false;
|
||||
if (!timeoutMs.HasValue)
|
||||
{
|
||||
timeoutMs = 800;
|
||||
}
|
||||
|
||||
request.Timeout = timeoutMs.Value;
|
||||
|
||||
if (header != null)
|
||||
{
|
||||
foreach (var item in header)
|
||||
{
|
||||
if (item.Key != "Accept")
|
||||
{
|
||||
request.AddHeader(item.Key, item.Value);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
request.AddHeader("Accept", "application/json");
|
||||
|
||||
var r = client.Get(request);
|
||||
errorCode = r.StatusCode.GetHashCode();
|
||||
if (r.StatusCode == HttpStatusCode.OK)
|
||||
{
|
||||
return r.Content;
|
||||
}
|
||||
|
||||
if (r.StatusCode != 0)
|
||||
return r.Content;
|
||||
|
||||
return !isRetry ? GetRequest(url, timeoutMs, header, true) : r.Content;
|
||||
}
|
||||
|
||||
private static HttpResponse<T> AsJson<T>(this Method method, String url, Action<RestRequestHeaders> headersHandler = null, Object model = null, Int32? timeoutMs = null)
|
||||
{
|
||||
var httpResponse = new HttpResponse<T>();
|
||||
|
||||
try
|
||||
{
|
||||
var client = new RestClient(url);
|
||||
var request = new RestRequest(method);
|
||||
var headers = new RestRequestHeaders(request)
|
||||
{
|
||||
ContentType = "application/json",
|
||||
Accept = "application/json"
|
||||
};
|
||||
|
||||
headersHandler?.Invoke(headers);
|
||||
|
||||
if (model != null)
|
||||
{
|
||||
if (method == Method.GET)
|
||||
{
|
||||
request.AddObject(model);
|
||||
}
|
||||
else
|
||||
{
|
||||
request.AddJsonBody(model);
|
||||
}
|
||||
}
|
||||
|
||||
ServicePointManager.Expect100Continue = false;
|
||||
|
||||
var response = client.Execute(request);
|
||||
httpResponse.HttpStatusCode = response.StatusCode;
|
||||
|
||||
if (HttpStatusCode.OK <= response.StatusCode && response.StatusCode < HttpStatusCode.BadRequest)
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(response.Content))
|
||||
{
|
||||
httpResponse.Value = JsonConvert.DeserializeObject<T>(response.Content);
|
||||
}
|
||||
else
|
||||
{
|
||||
httpResponse.Errors = new Dictionary<String, String>()
|
||||
{
|
||||
{ nameof(response.Content), $"{response.Content}" },
|
||||
};
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
httpResponse.Errors = JsonConvert.DeserializeObject<Dictionary<String, String>>(response.Content);
|
||||
|
||||
if (httpResponse.Errors is null)
|
||||
{
|
||||
httpResponse.Errors = new Dictionary<String, String>()
|
||||
{
|
||||
{ nameof(response.ErrorException), $"{response.ErrorException}" },
|
||||
{ nameof(response.ErrorMessage), $"{response.ErrorMessage}" },
|
||||
{ nameof(response.Content), $"{response.Content}" },
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception error)
|
||||
{
|
||||
httpResponse.HttpStatusCode = HttpStatusCode.InternalServerError;
|
||||
httpResponse.Errors = new Dictionary<String, String>()
|
||||
{
|
||||
{ nameof(Exception), $"{error}" }
|
||||
};
|
||||
}
|
||||
|
||||
return httpResponse;
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user