Browse Source

Changes in services integration

pull/49/merge
Javier Suárez Ruiz 8 years ago
parent
commit
6f04cd1f00
15 changed files with 118 additions and 81 deletions
  1. +5
    -0
      src/Mobile/eShopOnContainers.Xamarin.Tests.sln
  2. +1
    -1
      src/Mobile/eShopOnContainers/eShopOnContainers.Core/GlobalSettings.cs
  3. +36
    -18
      src/Mobile/eShopOnContainers/eShopOnContainers.Core/Models/Orders/Order.cs
  4. +1
    -1
      src/Mobile/eShopOnContainers/eShopOnContainers.Core/Models/Orders/OrderItem.cs
  5. +2
    -2
      src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Basket/BasketMockService.cs
  6. +5
    -5
      src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Catalog/CatalogMockService.cs
  7. +6
    -8
      src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Common/Common.cs
  8. +1
    -1
      src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Identity/IdentityService.cs
  9. +4
    -4
      src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Order/IOrderService.cs
  10. +24
    -12
      src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Order/OrderMockService.cs
  11. +8
    -8
      src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Order/OrderService.cs
  12. +3
    -4
      src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/RequestProvider/RequestProvider.cs
  13. +0
    -2
      src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/BasketViewModel.cs
  14. +19
    -14
      src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/CheckoutViewModel.cs
  15. +3
    -1
      src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/ProfileViewModel.cs

+ 5
- 0
src/Mobile/eShopOnContainers.Xamarin.Tests.sln View File

@ -153,6 +153,7 @@ Global
{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}.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|iPhone.ActiveCfg = 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.Deploy.0 = Debug|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.Build.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|x86.ActiveCfg = Debug|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|iPhone.ActiveCfg = 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.Deploy.0 = Debug|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.Build.0 = Release|ARM
{02680C26-CA1D-4D9D-A7E3-D66AF5BE6F2F}.Release|ARM.Deploy.0 = Release|ARM


+ 1
- 1
src/Mobile/eShopOnContainers/eShopOnContainers.Core/GlobalSettings.cs View File

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


+ 36
- 18
src/Mobile/eShopOnContainers/eShopOnContainers.Core/Models/Orders/Order.cs View File

@ -1,7 +1,7 @@
using eShopOnContainers.Core.Models.User;
using System;
using System;
using System.Collections.Generic;
using System.Linq;
using Newtonsoft.Json;
namespace eShopOnContainers.Core.Models.Orders
{
@ -9,34 +9,52 @@ namespace eShopOnContainers.Core.Models.Orders
{
public Order()
{
SequenceNumber = 1;
OrderItems = new List<OrderItem>();
ShippingAddress = new Address();
PaymentInfo = new PaymentInfo();
}
public string Id;
public List<OrderItem> OrderItems { get; set; }
public string BuyerId { get; set; }
public string OrderNumber
{
get
{
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 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 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);
}
private string CalculateOrderNumber()
{
return string.Format("{0}/{1}-{2}", OrderDate.Year, OrderDate.Month, SequenceNumber);
}
}
}

+ 1
- 1
src/Mobile/eShopOnContainers/eShopOnContainers.Core/Models/Orders/OrderItem.cs View File

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


+ 2
- 2
src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Basket/BasketMockService.cs View File

@ -12,8 +12,8 @@ namespace eShopOnContainers.Core.Services.Basket
BuyerId = "9245fe4a-d402-451c-b9ed-9c1a04247482",
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 = "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 = "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, ProductName = ".NET Black Cupt", Quantity = 1, UnitPrice = 17.00M }
}
};


+ 5
- 5
src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Catalog/CatalogMockService.cs View File

@ -24,11 +24,11 @@ namespace eShopOnContainers.Core.Services.Catalog
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.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.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.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.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.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, 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, 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, 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, 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()


+ 6
- 8
src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Common/Common.cs View File

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

+ 1
- 1
src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Identity/IdentityService.cs View File

@ -19,7 +19,7 @@ namespace eShopOnContainers.Core.Services.Identity
var dic = new Dictionary<string, string>();
dic.Add("client_id", "xamarin");
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("nonce", Guid.NewGuid().ToString("N"));


+ 4
- 4
src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Order/IOrderService.cs View File

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

+ 24
- 12
src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Order/OrderMockService.cs View File

@ -45,9 +45,9 @@ namespace eShopOnContainers.Core.Services.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 = 132, 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, 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, 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, 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>()
@ -62,33 +62,45 @@ namespace eShopOnContainers.Core.Services.Order
new CardType { Id = 2, Name = "Visa" },
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);
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);
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);
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);
return MockCardTypes.ToObservableCollection();
if (!string.IsNullOrEmpty(token))
return MockCardTypes.ToObservableCollection();
else
return new ObservableCollection<CardType>();
}
}
}

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

@ -14,7 +14,7 @@ namespace eShopOnContainers.Core.Services.Order
_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);
@ -22,10 +22,10 @@ namespace eShopOnContainers.Core.Services.Order
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
{
@ -36,7 +36,7 @@ namespace eShopOnContainers.Core.Services.Order
string uri = builder.ToString();
ObservableCollection<Models.Orders.Order> orders =
await _requestProvider.GetAsync<ObservableCollection<Models.Orders.Order>>(uri);
await _requestProvider.GetAsync<ObservableCollection<Models.Orders.Order>>(uri, token);
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
{
@ -57,7 +57,7 @@ namespace eShopOnContainers.Core.Services.Order
string uri = builder.ToString();
Models.Orders.Order order =
await _requestProvider.GetAsync<Models.Orders.Order>(uri);
await _requestProvider.GetAsync<Models.Orders.Order>(uri, token);
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
{
@ -78,7 +78,7 @@ namespace eShopOnContainers.Core.Services.Order
string uri = builder.ToString();
ObservableCollection<Models.Orders.CardType> cardTypes =
await _requestProvider.GetAsync<ObservableCollection<Models.Orders.CardType>>(uri);
await _requestProvider.GetAsync<ObservableCollection<Models.Orders.CardType>>(uri, token);
return cardTypes;
}


+ 3
- 4
src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/RequestProvider/RequestProvider.cs View File

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


+ 0
- 2
src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/BasketViewModel.cs View File

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


+ 19
- 14
src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/CheckoutViewModel.cs View File

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


+ 3
- 1
src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/ProfileViewModel.cs View File

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


Loading…
Cancel
Save