Skip to content

Commit 7eb9acc

Browse files
committed
2 parents 1dd1ccf + 9181946 commit 7eb9acc

3 files changed

Lines changed: 36 additions & 1 deletion

File tree

src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Order/OrderService.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public async Task CreateOrderAsync(Models.Orders.Order newOrder, string token)
2222

2323
string uri = builder.ToString();
2424

25-
await _requestProvider.PostAsync(uri, newOrder, token);
25+
await _requestProvider.PostAsync(uri, newOrder, token, "x-requestid");
2626
}
2727

2828
public async Task<ObservableCollection<Models.Orders.Order>> GetOrdersAsync(string token)

src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/RequestProvider/IRequestProvider.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ public interface IRequestProvider
88

99
Task<TResult> PostAsync<TResult>(string uri, TResult data, string token = "");
1010

11+
Task<TResult> PostAsync<TResult>(string uri, TResult data, string token = "", string header = "");
12+
1113
Task<TResult> PostAsync<TRequest, TResult>(string uri, TRequest data, string token = "");
1214

1315
Task<TResult> PutAsync<TResult>(string uri, TResult data, string token = "");

src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/RequestProvider/RequestProvider.cs

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
using System.Net.Http.Headers;
88
using System.Text;
99
using System.Threading.Tasks;
10+
using System;
1011

1112
namespace eShopOnContainers.Core.Services.RequestProvider
1213
{
@@ -41,6 +42,27 @@ public async Task<TResult> GetAsync<TResult>(string uri, string token = "")
4142
return result;
4243
}
4344

45+
public async Task<TResult> PostAsync<TResult>(string uri, TResult data, string token = "", string header = "")
46+
{
47+
HttpClient httpClient = CreateHttpClient(token);
48+
49+
if (!string.IsNullOrEmpty(header))
50+
{
51+
AddHeaderParameter(httpClient, header);
52+
}
53+
54+
HttpResponseMessage response = await httpClient.GetAsync(uri);
55+
56+
await HandleResponse(response);
57+
58+
string serialized = await response.Content.ReadAsStringAsync();
59+
60+
TResult result = await Task.Run(() =>
61+
JsonConvert.DeserializeObject<TResult>(serialized, _serializerSettings));
62+
63+
return result;
64+
}
65+
4466
public Task<TResult> PostAsync<TResult>(string uri, TResult data, string token = "")
4567
{
4668
return PostAsync<TResult, TResult>(uri, data, token);
@@ -99,6 +121,17 @@ private HttpClient CreateHttpClient(string token = "")
99121
return httpClient;
100122
}
101123

124+
private void AddHeaderParameter(HttpClient httpClient, string parameter)
125+
{
126+
if (httpClient == null)
127+
return;
128+
129+
if (string.IsNullOrEmpty(parameter))
130+
return;
131+
132+
httpClient.DefaultRequestHeaders.Add(parameter, Guid.NewGuid().ToString());
133+
}
134+
102135
private async Task HandleResponse(HttpResponseMessage response)
103136
{
104137
if (!response.IsSuccessStatusCode)

0 commit comments

Comments
 (0)