From 3340595b4f9bdff1e51399e571a9b106bd02a95d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20Su=C3=A1rez=20Ruiz?= Date: Tue, 10 Jan 2017 15:42:46 +0100 Subject: [PATCH] Changed Basket API integration --- .../ViewModels/Base/MessengerKeys.cs | 3 --- .../ViewModels/BasketViewModel.cs | 19 ++++++++++++------- .../ViewModels/CatalogViewModel.cs | 11 ----------- .../Views/MainView.xaml.cs | 7 +++---- 4 files changed, 15 insertions(+), 25 deletions(-) diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/Base/MessengerKeys.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/Base/MessengerKeys.cs index 2558b94be..38b8f28f1 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/Base/MessengerKeys.cs +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/Base/MessengerKeys.cs @@ -5,9 +5,6 @@ // Add product to basket public const string AddProduct = "AddProduct"; - // Update Basket - public const string UpdateBasket = "UpdateBasket"; - // Filter public const string Filter = "Filter"; diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/BasketViewModel.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/BasketViewModel.cs index ccda19a80..a341fba11 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/BasketViewModel.cs +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/BasketViewModel.cs @@ -6,7 +6,6 @@ using eShopOnContainers.Core.Services.User; using eShopOnContainers.Core.ViewModels.Base; using eShopOnContainers.ViewModels.Base; using System; -using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Threading.Tasks; @@ -66,20 +65,26 @@ namespace eShopOnContainers.Core.ViewModels public ICommand CheckoutCommand => new Command(Checkout); - public override Task InitializeAsync(object navigationData) + public override async Task InitializeAsync(object navigationData) { if (BasketItems == null) BasketItems = new ObservableCollection(); - MessagingCenter.Unsubscribe>(this, MessengerKeys.UpdateBasket); - MessagingCenter.Subscribe>(this, MessengerKeys.UpdateBasket, (sender, arg) => + var authToken = Settings.AuthAccessToken; + var userInfo = await _userService.GetUserInfoAsync(authToken); + + // Update Basket + var basket = await _basketService.GetBasketAsync(userInfo.UserId, authToken); + + if (basket != null && basket.Items != null && basket.Items.Any()) { - foreach (var basketItem in arg) + BasketItems.Clear(); + foreach (var basketItem in basket.Items) { BadgeCount += basketItem.Quantity; AddBasketItem(basketItem); } - }); + } MessagingCenter.Unsubscribe(this, MessengerKeys.AddProduct); MessagingCenter.Subscribe(this, MessengerKeys.AddProduct, (sender, arg) => @@ -89,7 +94,7 @@ namespace eShopOnContainers.Core.ViewModels AddCatalogItem(arg); }); - return base.InitializeAsync(navigationData); + await base.InitializeAsync(navigationData); } private void AddCatalogItem(CatalogItem item) diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/CatalogViewModel.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/CatalogViewModel.cs index 27a833fa7..789cc5e50 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/CatalogViewModel.cs +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/CatalogViewModel.cs @@ -104,17 +104,6 @@ namespace eShopOnContainers.Core.ViewModels Brands = await _productsService.GetCatalogBrandAsync(); Types = await _productsService.GetCatalogTypeAsync(); - var authToken = Settings.AuthAccessToken; - var userInfo = await _userService.GetUserInfoAsync(authToken); - - // Update Basket - var basket = await _basketService.GetBasketAsync(userInfo.UserId, authToken); - - if (basket != null && basket.Items != null && basket.Items.Any()) - { - MessagingCenter.Send(this, MessengerKeys.UpdateBasket, basket.Items); - } - IsBusy = false; } diff --git a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/MainView.xaml.cs b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/MainView.xaml.cs index 3a819e786..aee1df50d 100644 --- a/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/MainView.xaml.cs +++ b/src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/MainView.xaml.cs @@ -32,15 +32,14 @@ namespace eShopOnContainers.Core.Views } }); + var homeViewModel = ViewModelLocator.Instance.Resolve(); + await homeViewModel.InitializeAsync(null); + HomeView.BindingContext = homeViewModel; var basketViewModel = ViewModelLocator.Instance.Resolve(); await basketViewModel.InitializeAsync(null); BasketView.BindingContext = basketViewModel; - var homeViewModel = ViewModelLocator.Instance.Resolve(); - await homeViewModel.InitializeAsync(null); - HomeView.BindingContext = homeViewModel; - var profileViewModel = ViewModelLocator.Instance.Resolve(); await profileViewModel.InitializeAsync(null); ProfileView.BindingContext = profileViewModel;