Changes in services integration

This commit is contained in:
Javier Suárez Ruiz 2016-12-19 08:19:23 +01:00
parent c789f37aec
commit 6f04cd1f00
15 changed files with 118 additions and 81 deletions

View File

@ -153,6 +153,7 @@ Global
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Debug|x64.ActiveCfg = Debug|iPhone {6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Debug|x64.ActiveCfg = Debug|iPhone
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Debug|x86.ActiveCfg = Debug|iPhone {6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Debug|x86.ActiveCfg = Debug|iPhone
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Release|Any CPU.ActiveCfg = Release|iPhone {6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Release|Any CPU.ActiveCfg = Release|iPhone
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Release|Any CPU.Build.0 = Release|iPhone
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Release|ARM.ActiveCfg = Release|iPhone {6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Release|ARM.ActiveCfg = Release|iPhone
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Release|iPhone.ActiveCfg = Release|iPhone {6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Release|iPhone.ActiveCfg = Release|iPhone
{6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Release|iPhone.Build.0 = Release|iPhone {6EEB23DC-7063-4444-9AF8-90DF24F549C0}.Release|iPhone.Build.0 = Release|iPhone
@ -263,6 +264,8 @@ Global
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Debug|x86.Build.0 = Debug|x86 {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Debug|x86.Build.0 = Debug|x86
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Debug|x86.Deploy.0 = Debug|x86 {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Debug|x86.Deploy.0 = Debug|x86
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Release|Any CPU.ActiveCfg = Release|x86 {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Release|Any CPU.ActiveCfg = Release|x86
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Release|Any CPU.Build.0 = Release|x86
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Release|Any CPU.Deploy.0 = Release|x86
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Release|ARM.ActiveCfg = Release|ARM {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Release|ARM.ActiveCfg = Release|ARM
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Release|ARM.Build.0 = Release|ARM {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Release|ARM.Build.0 = Release|ARM
{C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Release|ARM.Deploy.0 = Release|ARM {C3C1E2CF-B1F7-4654-BBDC-50143DB22E0B}.Release|ARM.Deploy.0 = Release|ARM
@ -420,6 +423,7 @@ Global
{B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Debug|x64.ActiveCfg = Debug|iPhone {B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Debug|x64.ActiveCfg = Debug|iPhone
{B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Debug|x86.ActiveCfg = Debug|iPhone {B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Debug|x86.ActiveCfg = Debug|iPhone
{B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Release|Any CPU.ActiveCfg = Release|iPhone {B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Release|Any CPU.ActiveCfg = Release|iPhone
{B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Release|Any CPU.Build.0 = Release|iPhone
{B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Release|ARM.ActiveCfg = Release|iPhone {B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Release|ARM.ActiveCfg = Release|iPhone
{B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Release|iPhone.ActiveCfg = Release|iPhone {B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Release|iPhone.ActiveCfg = Release|iPhone
{B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Release|iPhone.Build.0 = Release|iPhone {B68C2B56-7581-46AE-B55D-D25DDFD3BFE3}.Release|iPhone.Build.0 = Release|iPhone
@ -482,6 +486,7 @@ Global
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Debug|x86.Build.0 = Debug|x86 {02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Debug|x86.Build.0 = Debug|x86
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Debug|x86.Deploy.0 = Debug|x86 {02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Debug|x86.Deploy.0 = Debug|x86
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Release|Any CPU.ActiveCfg = Release|x86 {02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Release|Any CPU.ActiveCfg = Release|x86
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Release|Any CPU.Build.0 = Release|x86
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Release|ARM.ActiveCfg = Release|ARM {02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Release|ARM.ActiveCfg = Release|ARM
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Release|ARM.Build.0 = Release|ARM {02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Release|ARM.Build.0 = Release|ARM
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Release|ARM.Deploy.0 = Release|ARM {02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Release|ARM.Deploy.0 = Release|ARM

View File

@ -7,7 +7,7 @@
public GlobalSetting() public GlobalSetting()
{ {
BaseEndpoint = "http://104.40.62.65"; BaseEndpoint = "http://13.88.8.119";
} }
public static GlobalSetting Instance public static GlobalSetting Instance

View File

@ -1,7 +1,7 @@
using eShopOnContainers.Core.Models.User; using System;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using Newtonsoft.Json;
namespace eShopOnContainers.Core.Models.Orders namespace eShopOnContainers.Core.Models.Orders
{ {
@ -9,34 +9,52 @@ namespace eShopOnContainers.Core.Models.Orders
{ {
public Order() public Order()
{ {
SequenceNumber = 1;
OrderItems = new List<OrderItem>(); OrderItems = new List<OrderItem>();
ShippingAddress = new Address();
PaymentInfo = new PaymentInfo();
} }
public string Id; public string BuyerId { get; set; }
public int SequenceNumber { get; set; }
public DateTime OrderDate { get; set; }
public OrderState State { get; set; }
public string ShippingCity { get; set; }
public string ShippingStreet { get; set; }
public string ShippingState { get; set; }
public string ShippingCountry { get; set; }
public string CardType { get; set; }
public string CardNumber { get; set; }
public string CardHolderName { get; set; }
public DateTime CardExpiration { get; set; }
public string CardSecurityNumber { get; set; }
[JsonProperty("items")]
public List<OrderItem> OrderItems { get; set; } public List<OrderItem> OrderItems { get; set; }
public string OrderNumber public decimal Total { get { return CalculateTotal(); } }
public string OrderNumber { get { return CalculateOrderNumber(); } }
private decimal CalculateTotal()
{ {
get return OrderItems.Sum(x => x.Quantity * x.UnitPrice);
}
private string CalculateOrderNumber()
{ {
return string.Format("{0}/{1}-{2}", OrderDate.Year, OrderDate.Month, SequenceNumber); return string.Format("{0}/{1}-{2}", OrderDate.Year, OrderDate.Month, SequenceNumber);
} }
} }
public int SequenceNumber { get; set; }
public virtual string BuyerId { get; set; }
public virtual Address ShippingAddress { get; set; }
public virtual PaymentInfo PaymentInfo { get; set; }
public virtual DateTime OrderDate { get; set; }
public OrderState State { get; set; }
public decimal Total { get { return CalculateTotal(); } }
public decimal CalculateTotal()
{
return OrderItems.Sum(x => x.Quantity * x.UnitPrice);
}
}
} }

View File

@ -4,7 +4,7 @@ namespace eShopOnContainers.Core.Models.Orders
{ {
public class OrderItem public class OrderItem
{ {
public Guid ProductId { get; set; } public string ProductId { get; set; }
public Guid OrderId { get; set; } public Guid OrderId { get; set; }
public decimal UnitPrice { get; set; } public decimal UnitPrice { get; set; }
public string ProductName { get; set; } public string ProductName { get; set; }

View File

@ -12,8 +12,8 @@ namespace eShopOnContainers.Core.Services.Basket
BuyerId = "9245fe4a-d402-451c-b9ed-9c1a04247482", BuyerId = "9245fe4a-d402-451c-b9ed-9c1a04247482",
Items = new List<BasketItem> Items = new List<BasketItem>
{ {
new BasketItem { Id = "1", PictureUrl = Device.OS != TargetPlatform.Windows ? "fake_product_01.png" : "Assets/fake_product_01.png", ProductId = Common.Common.MockCatalogItemId01.ToString(), ProductName = ".NET Bot Blue Sweatshirt (M)", Quantity = 1, UnitPrice = 19.50M }, new BasketItem { Id = "1", PictureUrl = Device.OS != TargetPlatform.Windows ? "fake_product_01.png" : "Assets/fake_product_01.png", ProductId = Common.Common.MockCatalogItemId01, ProductName = ".NET Bot Blue Sweatshirt (M)", Quantity = 1, UnitPrice = 19.50M },
new BasketItem { Id = "2", PictureUrl = Device.OS != TargetPlatform.Windows ? "fake_product_04.png" : "Assets/fake_product_04.png", ProductId = Common.Common.MockCatalogItemId04.ToString(), ProductName = ".NET Black Cupt", Quantity = 1, UnitPrice = 17.00M } new BasketItem { Id = "2", PictureUrl = Device.OS != TargetPlatform.Windows ? "fake_product_04.png" : "Assets/fake_product_04.png", ProductId = Common.Common.MockCatalogItemId04, ProductName = ".NET Black Cupt", Quantity = 1, UnitPrice = 17.00M }
} }
}; };

View File

@ -24,11 +24,11 @@ namespace eShopOnContainers.Core.Services.Catalog
private ObservableCollection<CatalogItem> MockCatalog = new ObservableCollection<CatalogItem> private ObservableCollection<CatalogItem> MockCatalog = new ObservableCollection<CatalogItem>
{ {
new CatalogItem { Id = Common.Common.MockCatalogItemId01.ToString(), PictureUri = Device.OS != TargetPlatform.Windows ? "fake_product_01.png" : "Assets/fake_product_01.png", Name = ".NET Bot Blue Sweatshirt (M)", Price = 19.50M, CatalogBrandId = 2, CatalogBrand = "Visual Studio", CatalogTypeId = 2, CatalogType = "T-Shirt" }, new CatalogItem { Id = Common.Common.MockCatalogItemId01, PictureUri = Device.OS != TargetPlatform.Windows ? "fake_product_01.png" : "Assets/fake_product_01.png", Name = ".NET Bot Blue Sweatshirt (M)", Price = 19.50M, CatalogBrandId = 2, CatalogBrand = "Visual Studio", CatalogTypeId = 2, CatalogType = "T-Shirt" },
new CatalogItem { Id = Common.Common.MockCatalogItemId02.ToString(), PictureUri = Device.OS != TargetPlatform.Windows ? "fake_product_02.png" : "Assets/fake_product_02.png", Name = ".NET Bot Purple Sweatshirt (M)", Price = 19.50M, CatalogBrandId = 2, CatalogBrand = "Visual Studio", CatalogTypeId = 2, CatalogType = "T-Shirt" }, new CatalogItem { Id = Common.Common.MockCatalogItemId02, PictureUri = Device.OS != TargetPlatform.Windows ? "fake_product_02.png" : "Assets/fake_product_02.png", Name = ".NET Bot Purple Sweatshirt (M)", Price = 19.50M, CatalogBrandId = 2, CatalogBrand = "Visual Studio", CatalogTypeId = 2, CatalogType = "T-Shirt" },
new CatalogItem { Id = Common.Common.MockCatalogItemId03.ToString(), PictureUri = Device.OS != TargetPlatform.Windows ? "fake_product_03.png" : "Assets/fake_product_03.png", Name = ".NET Bot Black Sweatshirt (M)", Price = 19.95M, CatalogBrandId = 2, CatalogBrand = "Visual Studio", CatalogTypeId = 2, CatalogType = "T-Shirt" }, new CatalogItem { Id = Common.Common.MockCatalogItemId03, PictureUri = Device.OS != TargetPlatform.Windows ? "fake_product_03.png" : "Assets/fake_product_03.png", Name = ".NET Bot Black Sweatshirt (M)", Price = 19.95M, CatalogBrandId = 2, CatalogBrand = "Visual Studio", CatalogTypeId = 2, CatalogType = "T-Shirt" },
new CatalogItem { Id = Common.Common.MockCatalogItemId04.ToString(), PictureUri = Device.OS != TargetPlatform.Windows ? "fake_product_04.png" : "Assets/fake_product_04.png", Name = ".NET Black Cupt", Price = 17.00M, CatalogBrandId = 2, CatalogBrand = "Visual Studio", CatalogTypeId = 1, CatalogType = "Mug" }, new CatalogItem { Id = Common.Common.MockCatalogItemId04, PictureUri = Device.OS != TargetPlatform.Windows ? "fake_product_04.png" : "Assets/fake_product_04.png", Name = ".NET Black Cupt", Price = 17.00M, CatalogBrandId = 2, CatalogBrand = "Visual Studio", CatalogTypeId = 1, CatalogType = "Mug" },
new CatalogItem { Id = Common.Common.MockCatalogItemId05.ToString(), PictureUri = Device.OS != TargetPlatform.Windows ? "fake_product_05.png" : "Assets/fake_product_05.png", Name = "Azure Black Sweatshirt (M)", Price = 19.50M, CatalogBrandId = 1, CatalogBrand = "Azure", CatalogTypeId = 2, CatalogType = "T-Shirt" } new CatalogItem { Id = Common.Common.MockCatalogItemId05, PictureUri = Device.OS != TargetPlatform.Windows ? "fake_product_05.png" : "Assets/fake_product_05.png", Name = "Azure Black Sweatshirt (M)", Price = 19.50M, CatalogBrandId = 1, CatalogBrand = "Azure", CatalogTypeId = 2, CatalogType = "T-Shirt" }
}; };
public async Task<ObservableCollection<CatalogItem>> GetCatalogAsync() public async Task<ObservableCollection<CatalogItem>> GetCatalogAsync()

View File

@ -1,13 +1,11 @@
using System; namespace eShopOnContainers.Core.Services.Common
namespace eShopOnContainers.Core.Services.Common
{ {
public static class Common public static class Common
{ {
public static Guid MockCatalogItemId01 = new Guid("0f8fad5b-d9cb-469f-a165-708677289501"); public static string MockCatalogItemId01 = "1";
public static Guid MockCatalogItemId02 = new Guid("0f8fad5b-d9cb-469f-a165-708677289502"); public static string MockCatalogItemId02 = "2";
public static Guid MockCatalogItemId03 = new Guid("0f8fad5b-d9cb-469f-a165-708677289503"); public static string MockCatalogItemId03 = "3";
public static Guid MockCatalogItemId04 = new Guid("0f8fad5b-d9cb-469f-a165-708677289504"); public static string MockCatalogItemId04 = "4";
public static Guid MockCatalogItemId05 = new Guid("0f8fad5b-d9cb-469f-a165-708677289505"); public static string MockCatalogItemId05 = "5";
} }
} }

View File

@ -19,7 +19,7 @@ namespace eShopOnContainers.Core.Services.Identity
var dic = new Dictionary<string, string>(); var dic = new Dictionary<string, string>();
dic.Add("client_id", "xamarin"); dic.Add("client_id", "xamarin");
dic.Add("response_type", "id_token token"); dic.Add("response_type", "id_token token");
dic.Add("scope", "openid profile basket"); dic.Add("scope", "openid profile basket orders");
dic.Add("redirect_uri", GlobalSetting.Instance.IdentityCallback); dic.Add("redirect_uri", GlobalSetting.Instance.IdentityCallback);
dic.Add("nonce", Guid.NewGuid().ToString("N")); dic.Add("nonce", Guid.NewGuid().ToString("N"));

View File

@ -5,9 +5,9 @@ namespace eShopOnContainers.Core.Services.Order
{ {
public interface IOrderService public interface IOrderService
{ {
Task CreateOrderAsync(Models.Orders.Order newOrder); Task CreateOrderAsync(Models.Orders.Order newOrder, string token);
Task<ObservableCollection<Models.Orders.Order>> GetOrdersAsync(); Task<ObservableCollection<Models.Orders.Order>> GetOrdersAsync(string token);
Task<Models.Orders.Order> GetOrderAsync(int orderId); Task<Models.Orders.Order> GetOrderAsync(int orderId, string token);
Task<ObservableCollection<Models.Orders.CardType>> GetCardTypesAsync(); Task<ObservableCollection<Models.Orders.CardType>> GetCardTypesAsync(string token);
} }
} }

View File

@ -45,9 +45,9 @@ namespace eShopOnContainers.Core.Services.Order
private List<Models.Orders.Order> MockOrders = new List<Models.Orders.Order>() private List<Models.Orders.Order> MockOrders = new List<Models.Orders.Order>()
{ {
new Models.Orders.Order { SequenceNumber = 123, OrderDate = DateTime.Now, State = OrderState.Delivered, OrderItems = MockOrderItems, PaymentInfo = MockPaymentInfo, ShippingAddress = MockAdress }, new Models.Orders.Order { SequenceNumber = 123, OrderDate = DateTime.Now, State = OrderState.Delivered, OrderItems = MockOrderItems, CardType = MockPaymentInfo.CardType.ToString(), CardHolderName = MockPaymentInfo.CardHolderName, CardNumber = MockPaymentInfo.CardNumber, CardSecurityNumber = MockPaymentInfo.SecurityNumber, CardExpiration = new DateTime(MockPaymentInfo.ExpirationYear, MockPaymentInfo.ExpirationMonth, 1), ShippingCity = MockAdress.City, ShippingState = MockAdress.State, ShippingCountry = MockAdress.Country, ShippingStreet = MockAdress.Street },
new Models.Orders.Order { SequenceNumber = 132, OrderDate = DateTime.Now, State = OrderState.Delivered, OrderItems = MockOrderItems, PaymentInfo = MockPaymentInfo, ShippingAddress = MockAdress }, new Models.Orders.Order { SequenceNumber = 132, OrderDate = DateTime.Now, State = OrderState.Delivered, OrderItems = MockOrderItems, CardType = MockPaymentInfo.CardType.ToString(), CardHolderName = MockPaymentInfo.CardHolderName, CardNumber = MockPaymentInfo.CardNumber, CardSecurityNumber = MockPaymentInfo.SecurityNumber, CardExpiration = new DateTime(MockPaymentInfo.ExpirationYear, MockPaymentInfo.ExpirationMonth, 1), ShippingCity = MockAdress.City, ShippingState = MockAdress.State, ShippingCountry = MockAdress.Country, ShippingStreet = MockAdress.Street },
new Models.Orders.Order { SequenceNumber = 231, OrderDate = DateTime.Now, State = OrderState.Delivered, OrderItems = MockOrderItems, PaymentInfo = MockPaymentInfo, ShippingAddress = MockAdress }, new Models.Orders.Order { SequenceNumber = 231, OrderDate = DateTime.Now, State = OrderState.Delivered, OrderItems = MockOrderItems, CardType = MockPaymentInfo.CardType.ToString(), CardHolderName = MockPaymentInfo.CardHolderName, CardNumber = MockPaymentInfo.CardNumber, CardSecurityNumber = MockPaymentInfo.SecurityNumber, CardExpiration = new DateTime(MockPaymentInfo.ExpirationYear, MockPaymentInfo.ExpirationMonth, 1), ShippingCity = MockAdress.City, ShippingState = MockAdress.State, ShippingCountry = MockAdress.Country, ShippingStreet = MockAdress.Street },
}; };
private static List<OrderItem> MockOrderItems = new List<OrderItem>() private static List<OrderItem> MockOrderItems = new List<OrderItem>()
@ -63,32 +63,44 @@ namespace eShopOnContainers.Core.Services.Order
new CardType { Id = 3, Name = "MasterCard" }, new CardType { Id = 3, Name = "MasterCard" },
}; };
public async Task CreateOrderAsync(Models.Orders.Order newOrder) public async Task CreateOrderAsync(Models.Orders.Order newOrder, string token)
{ {
await Task.Delay(500); await Task.Delay(500);
if (!string.IsNullOrEmpty(token))
{
MockOrders.Insert(0, newOrder); MockOrders.Insert(0, newOrder);
} }
}
public async Task<ObservableCollection<Models.Orders.Order>> GetOrdersAsync() public async Task<ObservableCollection<Models.Orders.Order>> GetOrdersAsync(string token)
{ {
await Task.Delay(500); await Task.Delay(500);
if (!string.IsNullOrEmpty(token))
return MockOrders.ToObservableCollection(); return MockOrders.ToObservableCollection();
else
return new ObservableCollection<Models.Orders.Order>();
} }
public async Task<Models.Orders.Order> GetOrderAsync(int orderId) public async Task<Models.Orders.Order> GetOrderAsync(int orderId, string token)
{ {
await Task.Delay(500); await Task.Delay(500);
if (!string.IsNullOrEmpty(token))
return MockOrders.FirstOrDefault(o => o.SequenceNumber == orderId); return MockOrders.FirstOrDefault(o => o.SequenceNumber == orderId);
else
return new Models.Orders.Order();
} }
public async Task<ObservableCollection<CardType>> GetCardTypesAsync() public async Task<ObservableCollection<CardType>> GetCardTypesAsync(string token)
{ {
await Task.Delay(500); await Task.Delay(500);
if (!string.IsNullOrEmpty(token))
return MockCardTypes.ToObservableCollection(); return MockCardTypes.ToObservableCollection();
else
return new ObservableCollection<CardType>();
} }
} }
} }

View File

@ -14,7 +14,7 @@ namespace eShopOnContainers.Core.Services.Order
_requestProvider = requestProvider; _requestProvider = requestProvider;
} }
public async Task CreateOrderAsync(Models.Orders.Order newOrder) public async Task CreateOrderAsync(Models.Orders.Order newOrder, string token)
{ {
UriBuilder builder = new UriBuilder(GlobalSetting.Instance.OrdersEndpoint); UriBuilder builder = new UriBuilder(GlobalSetting.Instance.OrdersEndpoint);
@ -22,10 +22,10 @@ namespace eShopOnContainers.Core.Services.Order
string uri = builder.ToString(); string uri = builder.ToString();
await _requestProvider.PostAsync(uri, newOrder); await _requestProvider.PostAsync(uri, newOrder, token);
} }
public async Task<ObservableCollection<Models.Orders.Order>> GetOrdersAsync() public async Task<ObservableCollection<Models.Orders.Order>> GetOrdersAsync(string token)
{ {
try try
{ {
@ -36,7 +36,7 @@ namespace eShopOnContainers.Core.Services.Order
string uri = builder.ToString(); string uri = builder.ToString();
ObservableCollection<Models.Orders.Order> orders = ObservableCollection<Models.Orders.Order> orders =
await _requestProvider.GetAsync<ObservableCollection<Models.Orders.Order>>(uri); await _requestProvider.GetAsync<ObservableCollection<Models.Orders.Order>>(uri, token);
return orders; return orders;
} }
@ -46,7 +46,7 @@ namespace eShopOnContainers.Core.Services.Order
} }
} }
public async Task<Models.Orders.Order> GetOrderAsync(int orderId) public async Task<Models.Orders.Order> GetOrderAsync(int orderId, string token)
{ {
try try
{ {
@ -57,7 +57,7 @@ namespace eShopOnContainers.Core.Services.Order
string uri = builder.ToString(); string uri = builder.ToString();
Models.Orders.Order order = Models.Orders.Order order =
await _requestProvider.GetAsync<Models.Orders.Order>(uri); await _requestProvider.GetAsync<Models.Orders.Order>(uri, token);
return order; return order;
} }
@ -67,7 +67,7 @@ namespace eShopOnContainers.Core.Services.Order
} }
} }
public async Task<ObservableCollection<Models.Orders.CardType>> GetCardTypesAsync() public async Task<ObservableCollection<Models.Orders.CardType>> GetCardTypesAsync(string token)
{ {
try try
{ {
@ -78,7 +78,7 @@ namespace eShopOnContainers.Core.Services.Order
string uri = builder.ToString(); string uri = builder.ToString();
ObservableCollection<Models.Orders.CardType> cardTypes = ObservableCollection<Models.Orders.CardType> cardTypes =
await _requestProvider.GetAsync<ObservableCollection<Models.Orders.CardType>>(uri); await _requestProvider.GetAsync<ObservableCollection<Models.Orders.CardType>>(uri, token);
return cardTypes; return cardTypes;
} }

View File

@ -101,7 +101,6 @@ namespace eShopOnContainers.Core.Services.RequestProvider
private async Task HandleResponse(HttpResponseMessage response) private async Task HandleResponse(HttpResponseMessage response)
{ {
// TODO:
if (!response.IsSuccessStatusCode) if (!response.IsSuccessStatusCode)
{ {
var content = await response.Content.ReadAsStringAsync(); var content = await response.Content.ReadAsStringAsync();
@ -109,10 +108,10 @@ namespace eShopOnContainers.Core.Services.RequestProvider
if (response.StatusCode == HttpStatusCode.Forbidden if (response.StatusCode == HttpStatusCode.Forbidden
|| response.StatusCode == HttpStatusCode.Unauthorized) || response.StatusCode == HttpStatusCode.Unauthorized)
{ {
// throw new ServiceAuthenticationException(content); throw new ServiceAuthenticationException(content);
} }
// throw new HttpRequestException(content); throw new HttpRequestException(content);
} }
} }
} }

View File

@ -79,8 +79,6 @@ namespace eShopOnContainers.Core.ViewModels
MessagingCenter.Subscribe<CatalogViewModel, CatalogItem>(this, MessengerKeys.AddProduct, (sender, arg) => MessagingCenter.Subscribe<CatalogViewModel, CatalogItem>(this, MessengerKeys.AddProduct, (sender, arg) =>
{ {
MessagingCenter.Unsubscribe<CatalogViewModel, CatalogItem>(this, MessengerKeys.AddProduct);
BadgeCount++; BadgeCount++;
AddCatalogItem(arg); AddCatalogItem(arg);

View File

@ -83,26 +83,32 @@ namespace eShopOnContainers.Core.ViewModels
ShippingAddress = new Address ShippingAddress = new Address
{ {
Street = userInfo.Street, Street = userInfo?.Street,
ZipCode = userInfo.ZipCode, ZipCode = userInfo?.ZipCode,
State = userInfo.State, State = userInfo?.State,
Country = userInfo.Country, Country = userInfo?.Country,
}; };
var paymentInfo = new PaymentInfo var paymentInfo = new PaymentInfo
{ {
CardNumber = userInfo.CardNumber, CardNumber = userInfo?.CardNumber,
CardHolderName = userInfo.CardHolder, CardHolderName = userInfo?.CardHolder,
SecurityNumber = userInfo.CardSecurityNumber SecurityNumber = userInfo?.CardSecurityNumber
}; };
Order = new Order Order = new Order
{ {
BuyerId = userInfo.UserId,
OrderItems = CreateOrderItems(orderItems), OrderItems = CreateOrderItems(orderItems),
State = OrderState.InProcess, State = OrderState.InProcess,
OrderDate = DateTime.Now, OrderDate = DateTime.Now,
PaymentInfo = paymentInfo, CardHolderName = paymentInfo.CardHolderName,
ShippingAddress = _shippingAddress CardNumber = paymentInfo.CardNumber,
CardSecurityNumber = paymentInfo.SecurityNumber,
CardExpiration = DateTime.Now.AddYears(5),
ShippingState = _shippingAddress.State,
ShippingCountry = _shippingAddress.Country,
ShippingStreet = _shippingAddress.Street
}; };
IsBusy = false; IsBusy = false;
@ -113,14 +119,14 @@ namespace eShopOnContainers.Core.ViewModels
{ {
var authToken = Settings.AuthAccessToken; var authToken = Settings.AuthAccessToken;
await _orderService.CreateOrderAsync(Order); await _orderService.CreateOrderAsync(Order, authToken);
await _basketService.ClearBasketAsync(_shippingAddress.Id.ToString(), authToken); await _basketService.ClearBasketAsync(_shippingAddress.Id.ToString(), authToken);
await NavigationService.NavigateToAsync<MainViewModel>(new TabParameter { TabIndex = 1 }); await NavigationService.NavigateToAsync<MainViewModel>(new TabParameter { TabIndex = 1 });
await NavigationService.RemoveLastFromBackStackAsync(); await NavigationService.RemoveLastFromBackStackAsync();
await DialogService.ShowAlertAsync("Order sent successfully!", string.Format("Order {0}", Order.OrderNumber), "Ok"); await DialogService.ShowAlertAsync("Order sent successfully!", string.Format("Order {0}", Order.SequenceNumber), "Ok");
await NavigationService.RemoveLastFromBackStackAsync(); await NavigationService.RemoveLastFromBackStackAsync();
} }
@ -132,8 +138,7 @@ namespace eShopOnContainers.Core.ViewModels
{ {
orderItems.Add(new OrderItem orderItems.Add(new OrderItem
{ {
// TODO: ProductId = basketItem.ProductId,
//ProductId = basketItem.ProductId,
ProductName = basketItem.ProductName, ProductName = basketItem.ProductName,
PictureUrl = basketItem.PictureUrl, PictureUrl = basketItem.PictureUrl,
Quantity = basketItem.Quantity, Quantity = basketItem.Quantity,

View File

@ -1,4 +1,5 @@
using eShopOnContainers.Core.Extensions; using eShopOnContainers.Core.Extensions;
using eShopOnContainers.Core.Helpers;
using eShopOnContainers.Core.Models.Orders; using eShopOnContainers.Core.Models.Orders;
using eShopOnContainers.Core.Models.User; using eShopOnContainers.Core.Models.User;
using eShopOnContainers.Core.Services.Order; using eShopOnContainers.Core.Services.Order;
@ -40,7 +41,8 @@ namespace eShopOnContainers.Core.ViewModels
{ {
IsBusy = true; IsBusy = true;
var orders = await _orderService.GetOrdersAsync(); var authToken = Settings.AuthAccessToken;
var orders = await _orderService.GetOrdersAsync(authToken);
Orders = orders.ToObservableCollection(); Orders = orders.ToObservableCollection();
IsBusy = false; IsBusy = false;