public NewspaperDetailViewModel(INewspaperAdRepository adRepository) { _adRepository = adRepository; Advertisements = new ObservableCollection<AdvertisementItemViewModel>(); Messenger.Default.Send(new NewspaperDetailViewModelReady()); Messenger.Default.Register<CurrentNewspaperItemChangedMessage>(this, (message) => { if (message.ItemViewModel != null) { ItemViewModel = message.ItemViewModel; _name = ItemViewModel.Name; } else _name = ""; RaisePropertyChanged(() => AllowSave); }); Messenger.Default.Register<CurrentAdvertisementItemChangedMessage>(this, (message) => { _currentAd = message.ItemViewModel; RaisePropertyChanged(() => AllowSave); }); AddItemCommand = new RelayCommand(AddItemCommandHandler); CancelItemCommand = new RelayCommand(CancelItemCommandHandler); SaveItemCommand = new RelayCommand(SaveItemCommandHandler); DeleteItemCommand = new RelayCommand(DeleteItemCommandHandler); LinkToCurentAd = new RelayCommand(LinkToCurrentAdHandler); }
private void SaveCommandHandler(AdvertisementItemViewModel viewModel) { if (inSave) return; inSave = true; viewModel.Newspapers.ToList().ForEach(n => _adRepository.Save(n.Model)); var sortedList = Advertisements.OrderBy(a=>a.Name).ToList(); Advertisements.Clear(); sortedList.ForEach(a=>Advertisements.Add(a)); inSave = false; }
private void AddingItemMessageHandler(AddingAdvertisementItemMessage obj) { var model = new Advertisement(); var vm = new AdvertisementItemViewModel(_adRepository) {Model = model}; Advertisements.Add(vm); var sortedAds = Advertisements.OrderBy(a => a.Name).ToList(); Advertisements.Clear(); sortedAds.ForEach(Advertisements.Add); Messenger.Default.Send(new CurrentAdvertisementItemChangedMessage(vm)); }