Skip to content

Commit 3340595

Browse files
committed
Changed Basket API integration
1 parent 67bfe7d commit 3340595

4 files changed

Lines changed: 15 additions & 25 deletions

File tree

src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/Base/MessengerKeys.cs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,6 @@ public class MessengerKeys
55
// Add product to basket
66
public const string AddProduct = "AddProduct";
77

8-
// Update Basket
9-
public const string UpdateBasket = "UpdateBasket";
10-
118
// Filter
129
public const string Filter = "Filter";
1310

src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/BasketViewModel.cs

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
using eShopOnContainers.Core.ViewModels.Base;
77
using eShopOnContainers.ViewModels.Base;
88
using System;
9-
using System.Collections.Generic;
109
using System.Collections.ObjectModel;
1110
using System.Linq;
1211
using System.Threading.Tasks;
@@ -66,20 +65,26 @@ public decimal Total
6665

6766
public ICommand CheckoutCommand => new Command(Checkout);
6867

69-
public override Task InitializeAsync(object navigationData)
68+
public override async Task InitializeAsync(object navigationData)
7069
{
7170
if (BasketItems == null)
7271
BasketItems = new ObservableCollection<BasketItem>();
7372

74-
MessagingCenter.Unsubscribe<CatalogViewModel, List<BasketItem>>(this, MessengerKeys.UpdateBasket);
75-
MessagingCenter.Subscribe<CatalogViewModel, List<BasketItem>>(this, MessengerKeys.UpdateBasket, (sender, arg) =>
73+
var authToken = Settings.AuthAccessToken;
74+
var userInfo = await _userService.GetUserInfoAsync(authToken);
75+
76+
// Update Basket
77+
var basket = await _basketService.GetBasketAsync(userInfo.UserId, authToken);
78+
79+
if (basket != null && basket.Items != null && basket.Items.Any())
7680
{
77-
foreach (var basketItem in arg)
81+
BasketItems.Clear();
82+
foreach (var basketItem in basket.Items)
7883
{
7984
BadgeCount += basketItem.Quantity;
8085
AddBasketItem(basketItem);
8186
}
82-
});
87+
}
8388

8489
MessagingCenter.Unsubscribe<CatalogViewModel, CatalogItem>(this, MessengerKeys.AddProduct);
8590
MessagingCenter.Subscribe<CatalogViewModel, CatalogItem>(this, MessengerKeys.AddProduct, (sender, arg) =>
@@ -89,7 +94,7 @@ public override Task InitializeAsync(object navigationData)
8994
AddCatalogItem(arg);
9095
});
9196

92-
return base.InitializeAsync(navigationData);
97+
await base.InitializeAsync(navigationData);
9398
}
9499

95100
private void AddCatalogItem(CatalogItem item)

src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/CatalogViewModel.cs

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -104,17 +104,6 @@ public override async Task InitializeAsync(object navigationData)
104104
Brands = await _productsService.GetCatalogBrandAsync();
105105
Types = await _productsService.GetCatalogTypeAsync();
106106

107-
var authToken = Settings.AuthAccessToken;
108-
var userInfo = await _userService.GetUserInfoAsync(authToken);
109-
110-
// Update Basket
111-
var basket = await _basketService.GetBasketAsync(userInfo.UserId, authToken);
112-
113-
if (basket != null && basket.Items != null && basket.Items.Any())
114-
{
115-
MessagingCenter.Send(this, MessengerKeys.UpdateBasket, basket.Items);
116-
}
117-
118107
IsBusy = false;
119108
}
120109

src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/MainView.xaml.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,14 @@ protected override async void OnAppearing()
3232
}
3333
});
3434

35+
var homeViewModel = ViewModelLocator.Instance.Resolve<CatalogViewModel>();
36+
await homeViewModel.InitializeAsync(null);
37+
HomeView.BindingContext = homeViewModel;
3538

3639
var basketViewModel = ViewModelLocator.Instance.Resolve<BasketViewModel>();
3740
await basketViewModel.InitializeAsync(null);
3841
BasketView.BindingContext = basketViewModel;
3942

40-
var homeViewModel = ViewModelLocator.Instance.Resolve<CatalogViewModel>();
41-
await homeViewModel.InitializeAsync(null);
42-
HomeView.BindingContext = homeViewModel;
43-
4443
var profileViewModel = ViewModelLocator.Instance.Resolve<ProfileViewModel>();
4544
await profileViewModel.InitializeAsync(null);
4645
ProfileView.BindingContext = profileViewModel;

0 commit comments

Comments
 (0)