Browse Source

Merge branch 'master' of https://github.com/dotnet/eShopOnContainers

pull/82/head
dsanz 8 years ago
parent
commit
7eb9acc758
3 changed files with 36 additions and 1 deletions
  1. +1
    -1
      src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Order/OrderService.cs
  2. +2
    -0
      src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/RequestProvider/IRequestProvider.cs
  3. +33
    -0
      src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/RequestProvider/RequestProvider.cs

+ 1
- 1
src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Order/OrderService.cs View File

@ -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<ObservableCollection<Models.Orders.Order>> GetOrdersAsync(string token)


+ 2
- 0
src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/RequestProvider/IRequestProvider.cs View File

@ -8,6 +8,8 @@ namespace eShopOnContainers.Core.Services.RequestProvider
Task<TResult> PostAsync<TResult>(string uri, TResult data, string token = "");
Task<TResult> PostAsync<TResult>(string uri, TResult data, string token = "", string header = "");
Task<TResult> PostAsync<TRequest, TResult>(string uri, TRequest data, string token = "");
Task<TResult> PutAsync<TResult>(string uri, TResult data, string token = "");


+ 33
- 0
src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/RequestProvider/RequestProvider.cs View File

@ -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<TResult> PostAsync<TResult>(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<TResult>(serialized, _serializerSettings));
return result;
}
public Task<TResult> PostAsync<TResult>(string uri, TResult data, string token = "")
{
return PostAsync<TResult, TResult>(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)


Loading…
Cancel
Save