From e53ac10382f246dfec40838eab3911d6e2dfb899 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20Su=C3=A1rez=20Ruiz?= Date: Mon, 6 Mar 2017 16:27:31 +0100 Subject: [PATCH] Added x-requestid parameter to Order API --- .../Services/Order/OrderService.cs | 2 +- .../RequestProvider/IRequestProvider.cs | 2 ++ .../RequestProvider/RequestProvider.cs | 33 +++++++++++++++++++ 3 files changed, 36 insertions(+), 1 deletion(-) diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Order/OrderService.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Order/OrderService.cs index f9e307f9d..3bae35401 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Order/OrderService.cs +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Order/OrderService.cs @@ -22,7 +22,7 @@ namespace eShopOnContainers.Core.Services.Order string uri = builder.ToString(); - await _requestProvider.PostAsync(uri, newOrder, token); + await _requestProvider.PostAsync(uri, newOrder, token, "x-requestid"); } public async Task> GetOrdersAsync(string token) diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/RequestProvider/IRequestProvider.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/RequestProvider/IRequestProvider.cs index b2ba46100..4bb899c90 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/RequestProvider/IRequestProvider.cs +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/RequestProvider/IRequestProvider.cs @@ -8,6 +8,8 @@ namespace eShopOnContainers.Core.Services.RequestProvider Task PostAsync(string uri, TResult data, string token = ""); + Task PostAsync(string uri, TResult data, string token = "", string header = ""); + Task PostAsync(string uri, TRequest data, string token = ""); Task PutAsync(string uri, TResult data, string token = ""); diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/RequestProvider/RequestProvider.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/RequestProvider/RequestProvider.cs index 38703f717..3bfac42ed 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/RequestProvider/RequestProvider.cs +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/RequestProvider/RequestProvider.cs @@ -7,6 +7,7 @@ using System.Net.Http; using System.Net.Http.Headers; using System.Text; using System.Threading.Tasks; +using System; namespace eShopOnContainers.Core.Services.RequestProvider { @@ -41,6 +42,27 @@ namespace eShopOnContainers.Core.Services.RequestProvider return result; } + public async Task PostAsync(string uri, TResult data, string token = "", string header = "") + { + HttpClient httpClient = CreateHttpClient(token); + + if (!string.IsNullOrEmpty(header)) + { + AddHeaderParameter(httpClient, header); + } + + HttpResponseMessage response = await httpClient.GetAsync(uri); + + await HandleResponse(response); + + string serialized = await response.Content.ReadAsStringAsync(); + + TResult result = await Task.Run(() => + JsonConvert.DeserializeObject(serialized, _serializerSettings)); + + return result; + } + public Task PostAsync(string uri, TResult data, string token = "") { return PostAsync(uri, data, token); @@ -99,6 +121,17 @@ namespace eShopOnContainers.Core.Services.RequestProvider return httpClient; } + private void AddHeaderParameter(HttpClient httpClient, string parameter) + { + if (httpClient == null) + return; + + if (string.IsNullOrEmpty(parameter)) + return; + + httpClient.DefaultRequestHeaders.Add(parameter, Guid.NewGuid().ToString()); + } + private async Task HandleResponse(HttpResponseMessage response) { if (!response.IsSuccessStatusCode)