Exemple #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");
     });
 }
Exemple #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");
                                                       });                                  
 }
        public RegistrationViewModel(ILookAfterPets petRepository, IEventAggregator events)
        {
            _petRepository = petRepository;
            _pet           = new Pet {
                Type = new PetType("")
            };
            _copiablePets = new ObservableCollection <CopiablePet>(petRepository.Pets.ToList().ConvertAll(pet => ToCopiablePet(pet)));

            events.GetEvent <NewPetEvent>().Subscribe(pet => _copiablePets.Add(ToCopiablePet(pet)), ThreadOption.UIThread);
        }