public async Task <HttpResponseMessage> GetHttpResponseMessageFromRequest <TResponse> ( IApiRequest aApiRequest ) { HttpVerb httpverb = aApiRequest.GetHttpVerb(); StringContent httpContent = null; if (httpverb == HttpVerb.Post || httpverb == HttpVerb.Put || httpverb == HttpVerb.Patch) { string requestAsJson = JsonSerializer.Serialize(aApiRequest, aApiRequest.GetType()); httpContent = new StringContent ( requestAsJson, Encoding.UTF8, MediaTypeNames.Application.Json ); } return(httpverb switch { HttpVerb.Get => await HttpClient.GetAsync(aApiRequest.GetRoute()).ConfigureAwait(false), HttpVerb.Delete => await HttpClient.DeleteAsync(aApiRequest.GetRoute()).ConfigureAwait(false), HttpVerb.Post => await HttpClient.PostAsync(aApiRequest.GetRoute(), httpContent).ConfigureAwait(false), HttpVerb.Put => await HttpClient.PutAsync(aApiRequest.GetRoute(), httpContent).ConfigureAwait(false), HttpVerb.Patch => await HttpClient.PatchAsync(aApiRequest.GetRoute(), httpContent).ConfigureAwait(false), _ => null, });