Browse Source

Changed Basket API integration

pull/49/merge
Javier Suárez Ruiz 8 years ago
parent
commit
3340595b4f
4 changed files with 15 additions and 25 deletions
  1. +0
    -3
      src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/Base/MessengerKeys.cs
  2. +12
    -7
      src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/BasketViewModel.cs
  3. +0
    -11
      src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/CatalogViewModel.cs
  4. +3
    -4
      src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/MainView.xaml.cs

+ 0
- 3
src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/Base/MessengerKeys.cs View File

@ -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";


+ 12
- 7
src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/BasketViewModel.cs View File

@ -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<BasketItem>();
MessagingCenter.Unsubscribe<CatalogViewModel, List<BasketItem>>(this, MessengerKeys.UpdateBasket);
MessagingCenter.Subscribe<CatalogViewModel, List<BasketItem>>(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<CatalogViewModel, CatalogItem>(this, MessengerKeys.AddProduct);
MessagingCenter.Subscribe<CatalogViewModel, CatalogItem>(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)


+ 0
- 11
src/Mobile/eShopOnContainers/eShopOnContainers.Core/ViewModels/CatalogViewModel.cs View File

@ -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;
}


+ 3
- 4
src/Mobile/eShopOnContainers/eShopOnContainers.Core/Views/MainView.xaml.cs View File

@ -32,15 +32,14 @@ namespace eShopOnContainers.Core.Views
}
});
var homeViewModel = ViewModelLocator.Instance.Resolve<CatalogViewModel>();
await homeViewModel.InitializeAsync(null);
HomeView.BindingContext = homeViewModel;
var basketViewModel = ViewModelLocator.Instance.Resolve<BasketViewModel>();
await basketViewModel.InitializeAsync(null);
BasketView.BindingContext = basketViewModel;
var homeViewModel = ViewModelLocator.Instance.Resolve<CatalogViewModel>();
await homeViewModel.InitializeAsync(null);
HomeView.BindingContext = homeViewModel;
var profileViewModel = ViewModelLocator.Instance.Resolve<ProfileViewModel>();
await profileViewModel.InitializeAsync(null);
ProfileView.BindingContext = profileViewModel;


Loading…
Cancel
Save