Changes in services integration
This commit is contained in:
parent
c789f37aec
commit
6f04cd1f00
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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 List<OrderItem> OrderItems { get; set; }
|
|
||||||
|
|
||||||
public string OrderNumber
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
return string.Format("{0}/{1}-{2}", OrderDate.Year, OrderDate.Month, SequenceNumber);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
public int SequenceNumber { get; set; }
|
public int SequenceNumber { get; set; }
|
||||||
public virtual string BuyerId { get; set; }
|
|
||||||
public virtual Address ShippingAddress { get; set; }
|
public DateTime OrderDate { get; set; }
|
||||||
public virtual PaymentInfo PaymentInfo { get; set; }
|
|
||||||
public virtual DateTime OrderDate { get; set; }
|
|
||||||
public OrderState State { 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 decimal Total { get { return CalculateTotal(); } }
|
public decimal Total { get { return CalculateTotal(); } }
|
||||||
|
|
||||||
|
public string OrderNumber { get { return CalculateOrderNumber(); } }
|
||||||
|
|
||||||
public decimal CalculateTotal()
|
|
||||||
|
private decimal CalculateTotal()
|
||||||
{
|
{
|
||||||
return OrderItems.Sum(x => x.Quantity * x.UnitPrice);
|
return OrderItems.Sum(x => x.Quantity * x.UnitPrice);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private string CalculateOrderNumber()
|
||||||
|
{
|
||||||
|
return string.Format("{0}/{1}-{2}", OrderDate.Year, OrderDate.Month, SequenceNumber);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -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; }
|
||||||
|
@ -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 }
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -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()
|
||||||
|
@ -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";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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"));
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -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>()
|
||||||
@ -62,33 +62,45 @@ namespace eShopOnContainers.Core.Services.Order
|
|||||||
new CardType { Id = 2, Name = "Visa" },
|
new CardType { Id = 2, Name = "Visa" },
|
||||||
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);
|
||||||
|
|
||||||
MockOrders.Insert(0, newOrder);
|
if (!string.IsNullOrEmpty(token))
|
||||||
|
{
|
||||||
|
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);
|
||||||
|
|
||||||
return MockOrders.ToObservableCollection();
|
if (!string.IsNullOrEmpty(token))
|
||||||
|
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);
|
||||||
|
|
||||||
return MockOrders.FirstOrDefault(o => o.SequenceNumber == orderId);
|
if (!string.IsNullOrEmpty(token))
|
||||||
|
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);
|
||||||
|
|
||||||
return MockCardTypes.ToObservableCollection();
|
if (!string.IsNullOrEmpty(token))
|
||||||
|
return MockCardTypes.ToObservableCollection();
|
||||||
|
else
|
||||||
|
return new ObservableCollection<CardType>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -101,18 +101,17 @@ 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();
|
||||||
|
|
||||||
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
|
@ -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,
|
||||||
|
@ -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;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user