예제 #1
0
        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,
            });