Exemplo n.º 1
0
 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");
     });
 }
Exemplo n.º 2
0
 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");
                                                       });                                  
 }