Ejemplo n.º 1
0
        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);
        }
        public AdvertisementDetailViewModel(INewspaperAdRepository adRepository)
        {
            _adRepository = adRepository;
            Newspapers = new ObservableCollection<NewspaperItemViewModel>();
            Messenger.Default.Register<CurrentAdvertisementItemChangedMessage>(this, (message) =>
                                                                                     {

                                                                                         if (message.ItemViewModel != null)
                                                                                         {
                                                                                             ItemViewModel = message.ItemViewModel;
                                                                                             Name = ItemViewModel.Name;
                                                                                             Text = ItemViewModel.Text;
                                                                                         }
                                                                                         else
                                                                                         {
                                                                                             Name = Text = "";
                                                                                         }

                                                                                         RaisePropertyChanged(() => AllowSave);
                                                                                     });
            Messenger.Default.Register<CurrentNewspaperItemChangedMessage>(this, (message) =>
                                                                                 {
                                                                                     _currentNewspaper = message.ItemViewModel;
                                                                                 });
            AddItemCommand = new RelayCommand<RoutedEventArgs>(AddItemCommandHandler);
            CancelItemCommand = new RelayCommand(CancelItemCommandHandler);
            SaveItemCommand = new RelayCommand(SaveItemCommandHandler);
            DeleteItemCommand = new RelayCommand(DeleteItemCommandHandler);
            LinkToCurrentPaper = new RelayCommand(LinkToCurrentPaperHandler);
            Messenger.Default.Send(new AdvertisementDetailViewModelReady());
        }
        public NewspaperCollectionViewModel(INewspaperAdRepository adRepository)
        {
            _adRepository = adRepository;
            Newspapers = new ObservableCollection<NewspaperItemViewModel>();

            var newspapers = _adRepository.Find(n => n != null).ToList().OrderBy(paper => paper.Name).ToList();
            newspapers.ForEach(n => Newspapers.Add(new NewspaperItemViewModel(_adRepository) {Model = n}));

            Newspapers.CollectionChanged += NewspapersCollectionChanged;
            SaveCommand = new RelayCommand<NewspaperItemViewModel>(SaveCommandHandler);
            DeleteCommand = new RelayCommand<RoutedEventArgs>(DeleteCommandHandler);
            DropCommand = new RelayCommand<DragEventArgs>(DropAdHandler);
            Messenger.Default.Register<AddingNewspaperItemMessage>(this, AddingNewspaperItemMessageHandler);
            Messenger.Default.Register<RemovingNewspaperItemMessage>(this, RemovingItemMessageHandler);
            Messenger.Default.Register<NewspaperDetailViewModelReady>(this, DetailViewModelReadyHandler);
            Messenger.Default.Register<SaveNewspaperItemMessage>(this, SaveItemMessageHandler);
            SelectedItemChangedCommand =
                new RelayCommand<RoutedPropertyChangedEventArgs<object>>(SelectedItemChangedCommandHandler);
            Messenger.Default.Send(new NewspaperCollectionReadyMessage {NewspaperList = Newspapers});
        }
        public AdvertisementCollectionViewModel(INewspaperAdRepository adRepository)
        {
            _adRepository = adRepository as INewspaperAdRepository;
            Advertisements = new ObservableCollection<AdvertisementItemViewModel>();

            var ads = _adRepository.GetAllAdvertisements().OrderBy(a => a.Name).ToList();
            ads.ForEach(a => Advertisements.Add(new AdvertisementItemViewModel(_adRepository) {Model = a}));

            Advertisements.CollectionChanged += AdvertisementsCollectionChanged;

            DeleteCommand = new RelayCommand<RoutedEventArgs>(DeleteCommandHandler);
            SaveCommand = new RelayCommand<AdvertisementItemViewModel>(SaveCommandHandler);

            Messenger.Default.Register<AddingAdvertisementItemMessage>(this, AddingItemMessageHandler);
            Messenger.Default.Register<RemovingAdvertisementItemMessage>(this, RemovingAdvertisementItemMessageHandler);
            Messenger.Default.Register<SaveAdvertisementItemMessage>(this, SaveItemMessageHandler);
            Messenger.Default.Register<AdvertisementDetailViewModelReady>(this, DetailViewModelReadyHandler);
            SelectedItemChangedCommand =
                new RelayCommand<RoutedPropertyChangedEventArgs<object>>(SelectedItemChangedCommandHandler);
            Messenger.Default.Send(new AdvertisementCollectionReadyMessage() {AdvertisementList = Advertisements});
        }
Ejemplo n.º 5
0
 public NewspaperItemViewModel(INewspaperAdRepository adRepository)
 {
     _adRepository = adRepository;
     _advertisements = new ObservableCollection<AdvertisementItemViewModel>();
     _advertisements.CollectionChanged += Advertisements_CollectionChanged;
 }
Ejemplo n.º 6
0
 private NewspaperItemViewModel GetValidNewspaperItemViewModel(Newspaper paper = null,
                                                               INewspaperAdRepository adRepository = null)
 {
     var model = paper ?? new Newspaper() {Name = "<New Newspaper>"};
     var repo = adRepository ?? Substitute.For<INewspaperAdRepository>();
     return new NewspaperItemViewModel(repo) {Model = model};
 }
Ejemplo n.º 7
0
 private AdvertisementItemViewModel GetValidAdvertisementItemViewModel(Advertisement ad = null,
                                                                       INewspaperAdRepository adRepository = null)
 {
     var model = ad ?? new Advertisement {Name = "<New Advertisement>", Text = "<New Advertisemnet body text."};
     var repo = adRepository ?? Substitute.For<INewspaperAdRepository>();
     var vm = new AdvertisementItemViewModel(repo) {Model = model};
     return vm;
 }