using Newtonsoft.Json; using Serilog; using System; using System.Net; using System.Net.Http; using System.Text; namespace LCU.Shared.Collections.RepoApiLib.Utilities { public class ClientHelpers : IClientHelpers { private readonly IHttpClientFactory _clientFactory; public ClientHelpers(IHttpClientFactory clientFactory) { _clientFactory = clientFactory; } public Uri CreateRequestUri(string clientUrl) { return new Uri(clientUrl); } public HttpContent CreateHttpContent(string strPayload) { HttpContent content = new StringContent(strPayload, Encoding.UTF8, "application/json"); return content; } public HttpRequestMessage CreateGetHttpRequestMessage(string clientUrl, string apiKey) { var uri = CreateRequestUri(clientUrl); return CreateHttpRequestMessage(HttpMethod.Get, uri, apiKey); } public HttpRequestMessage CreateHttpRequestMessage(HttpMethod method, Uri uri, string apiKey) { HttpRequestMessage request = new HttpRequestMessage() { Method = method, RequestUri = uri, }; request.Headers.Add("api-key", apiKey); return request; } public HttpResponseMessage SendHttpRequestMessage(HttpRequestMessage httpRequestMessage) { try { var client = _clientFactory.CreateClient(); var response = client.SendAsync(httpRequestMessage).Result; return response; } catch (Exception ex) { Log.Error(ex, "Failure in sending http request message."); return new HttpResponseMessage(HttpStatusCode.BadRequest); } } } }