public BasketViewModel( ILookAfterPets petRepository, ILookAfterAccessories accessoryRepository, IHandleMessages messenger, IEventAggregator events) { _petRepository = petRepository; _accessoryRepository = accessoryRepository; _messenger = messenger; _petBasket = new List <Pet>(); _accessoryBasket = new List <Accessory>(); events.GetEvent <NewPetEvent>().Subscribe(pet => NotifyPropertyChanged("AllAvailablePets")); events.GetEvent <SoldPetEvent>().Subscribe(pet => NotifyPropertyChanged("AllAvailablePets")); _accessoryRepository.OnAccessorySelected((o, e) => { foreach (var accessory in e.Accessories) { if (!_accessoryBasket.Contains(accessory)) { _accessoryBasket.Add(accessory); } } NotifyPropertyChanged("Basket", "HasItemsInBasket", "Total", "PurchaseAllowed"); }); _accessoryRepository.OnAccessoryUnselected((o, e) => { _accessoryBasket.RemoveAll( a => e.Accessories.Contains(a)); NotifyPropertyChanged("Basket", "HasItemsInBasket", "Total", "PurchaseAllowed"); }); }
public BasketViewModel( ILookAfterPets petRepository, ILookAfterAccessories accessoryRepository, IHandleMessages messenger, IEventAggregator events) { _petRepository = petRepository; _accessoryRepository = accessoryRepository; _messenger = messenger; _petBasket = new List<Pet>(); _accessoryBasket = new List<Accessory>(); events.GetEvent<NewPetEvent>().Subscribe(pet => NotifyPropertyChanged("AllAvailablePets")); events.GetEvent<SoldPetEvent>().Subscribe(pet => NotifyPropertyChanged("AllAvailablePets")); _accessoryRepository.OnAccessorySelected((o, e) => { foreach (var accessory in e.Accessories) { if (!_accessoryBasket.Contains(accessory)) { _accessoryBasket.Add(accessory); } } NotifyPropertyChanged("Basket", "HasItemsInBasket", "Total", "PurchaseAllowed"); }); _accessoryRepository.OnAccessoryUnselected((o, e) => { _accessoryBasket.RemoveAll( a => e.Accessories.Contains(a)); NotifyPropertyChanged("Basket", "HasItemsInBasket", "Total", "PurchaseAllowed"); }); }