示例#1
0
 void OnCounterpartyChanged(Counterparty newCounterparty)
 {
     if (newCounterparty != null)
     {
         SelectedCounterparty = newCounterparty;
         CounterpartyChangeEvent evt = eventAggregator.GetEvent <CounterpartyChangeEvent>();
         evt.Publish(newCounterparty);
     }
 }
示例#2
0
        public CounterpartyViewModel(
            ICounterpartyService dataService,
            IEventAggregator eventAggregator)
        {
            this.dataService     = dataService;
            this.eventAggregator = eventAggregator;
            this.counterparties  = new ObservableCollection <Counterparty>(dataService.FindAll());

            this.addCommand = new DelegateCommand(
                () =>
            {
                NewCounterparty = Counterparty.CreateNewCounterparty();
                NewCounterparty.PropertyChanged += (s, e) =>
                {
                    saveCommand.RaiseCanExecuteChanged();
                };
                // when first displayed the new counterparty will be invalid so we should disable the Save button
                saveCommand.RaiseCanExecuteChanged();
            }
                );

            this.saveCommand = new DelegateCommand(
                () =>
            {
                dataService.Add(NewCounterparty);
                this.Counterparties = new ObservableCollection <Counterparty>(dataService.FindAll());
                RaisePropertyChanged("Counterparties");

                // Don't use the NewCounterparty object as it won't be in the Counterparties list
                var newCounterparty = this.Counterparties.Where(c => c.Id == NewCounterparty.Id).Single();
                OnCounterpartyChanged(newCounterparty);
            },
                () =>
            {
                return((NewCounterparty == null) ? false : NewCounterparty.IsValid);
            }
                );

            if (counterparties.Count() > 0)
            {
                SelectedCounterparty = counterparties.First();
                CounterpartyChangeEvent evt = eventAggregator.GetEvent <CounterpartyChangeEvent>();
                evt.Publish(SelectedCounterparty);
            }
        }
示例#3
0
        public UsageViewModel(IEventAggregator eventAggregator, IUsageService usageService, IMenuService menuService, IRegionManager regionManager)
        {
            this.eventAggregator = eventAggregator;
            this.usageService    = usageService;
            this.menuService     = menuService;
            this.regionManager   = regionManager;

            CounterpartyChangeEvent counterpartyChangeEvent = eventAggregator.GetEvent <CounterpartyChangeEvent>();

            counterpartyChangeEvent.Subscribe(OnCounterpartyChanged);

            showUsageCommand = new DelegateCommand(ShowUsage);

            menuService.RegisterMenu(new MenuEntry()
            {
                Text = viewName, Command = showUsageCommand
            });
        }
示例#4
0
        public UsageDailyViewModel(IEventAggregator eventAggregator, IUsageService usageService, IMenuService menuService, IRegionManager regionManager)
        {
            this.eventAggregator = eventAggregator;
            this.usageService    = usageService;
            this.menuService     = menuService;
            this.regionManager   = regionManager;

            CounterpartyChangeEvent evt = eventAggregator.GetEvent <CounterpartyChangeEvent>();

            evt.Subscribe(OnSelectedCounterpartyChanged);

            // We may be launching this view after the counterparty has been selected e.g. popup window so get the usage for the currently selected counterparty
            if (usageService.CurrentCounterparty != null)
            {
                var usages = usageService.FindLatestUsageByCounterparty(usageService.CurrentCounterparty);
                Usages = new ObservableCollection <Model.Usage>(usages);
            }

            showUsageDailyCommand = new DelegateCommand(ShowUsageDaily);

            menuService.RegisterMenu(new MenuEntry()
            {
                Text = "Daily Usage", Command = showUsageDailyCommand
            });

            showGraphCommand = new DelegateCommand(ShowGraph);

            menuService.RegisterMenu(new MenuEntry()
            {
                Text = "Show Graph", Command = showGraphCommand
            });

            showUsageDailyPopupCommand = new DelegateCommand(ShowUsageDailyPopup);
            menuService.RegisterMenu(new MenuEntry()
            {
                Text = "Show PopUp Daily Usage", Command = showUsageDailyPopupCommand
            });
        }