diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Order/IOrderService.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Order/IOrderService.cs index 59b746917..a01938779 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Order/IOrderService.cs +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Order/IOrderService.cs @@ -7,7 +7,7 @@ namespace eShopOnContainers.Core.Services.Order { public interface IOrderService { - //Task CreateOrderAsync(Models.Orders.Order newOrder, string token); + Task CreateOrderAsync(Models.Orders.Order newOrder, string token); Task> GetOrdersAsync(string token); Task GetOrderAsync(int orderId, string token); Task> GetCardTypesAsync(string token); diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Order/OrderMockService.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Order/OrderMockService.cs index c32093203..e44e289e3 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Order/OrderMockService.cs +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Order/OrderMockService.cs @@ -104,6 +104,16 @@ namespace eShopOnContainers.Core.Services.Order return new Models.Orders.Order(); } + public async Task CreateOrderAsync(Models.Orders.Order newOrder, string token) + { + await Task.Delay(500); + + if (!string.IsNullOrEmpty(token)) + { + MockOrders.Add(newOrder); + } + } + public async Task> GetCardTypesAsync(string token) { await Task.Delay(500); diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Order/OrderService.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Order/OrderService.cs index 2d85bef5c..f74d6e19b 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Order/OrderService.cs +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Services/Order/OrderService.cs @@ -17,9 +17,13 @@ namespace eShopOnContainers.Core.Services.Order _requestProvider = requestProvider; } + public Task CreateOrderAsync(Models.Orders.Order newOrder, string token) + { + throw new Exception("Only available in Mock Services!"); + } + public async Task> GetOrdersAsync(string token) { - UriBuilder builder = new UriBuilder(GlobalSetting.Instance.OrdersEndpoint); builder.Path = "api/v1/orders"; diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/CheckoutViewModel.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/CheckoutViewModel.cs index a358f94d3..700fd8b53 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/CheckoutViewModel.cs +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/CheckoutViewModel.cs @@ -122,6 +122,16 @@ namespace eShopOnContainers.Core.ViewModels Total = CalculateTotal(CreateOrderItems(orderItems)) }; + if (Settings.UseMocks) + { + // Get number of orders + var orders = await _orderService.GetOrdersAsync(authToken); + + // Create the OrderNumber + Order.OrderNumber = orders.Count + 1; + RaisePropertyChanged(() => Order); + } + IsBusy = false; } } @@ -138,6 +148,11 @@ namespace eShopOnContainers.Core.ViewModels // Create basket checkout await _basketService.CheckoutAsync(basket, authToken); + if (Settings.UseMocks) + { + await _orderService.CreateOrderAsync(Order, authToken); + } + // Clean Basket await _basketService.ClearBasketAsync(_shippingAddress.Id.ToString(), authToken); diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/CheckoutView.xaml b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/CheckoutView.xaml index ec6ea70d5..12fcaaabe 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/CheckoutView.xaml +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/CheckoutView.xaml @@ -134,7 +134,7 @@ Text="STATUS" Style="{StaticResource OrderTitleStyle}"/>