/// <summary> /// Intializes and intance of SessionCostsViewModel. /// </summary> /// <param name="controller">The controller of the view model.</param> public SessionCostsViewModel(ISessionCostsController controller) { if (controller == null) { throw new ArgumentNullException("controller"); } Controller = controller; PopulateCosts(null); CostNewCommand = new RelayCommand((parameter) => NewCost(), (parameter) => !IsBusy); CostSaveCommand = new RelayCommand((parameter) => SaveCost(), (parameter) => !IsBusy && !HasError && IsDataModified); CostCancelCommand = new RelayCommand((parameter) => CancelCost(), (parameter) => !IsBusy && IsDataModified); CostDeactivateCommand = new RelayCommand((parameter) => DeactivateCost(), (parameter) => !IsBusy && SelectedCost != null); CloseCommand = new RelayCommand((parameter) => Close((CancelEventArgs)parameter)); // Listen for changes to the controller. PropertyChangedEventManager.AddListener(Controller, this, string.Empty); Controller.RequestCostsCompleted += OnRequestCostsCompleted; Controller.RequestSaveCostCompleted += OnRequestSaveCostCompleted; }
/// <summary> /// Intializes an instance of a SessionCostsViewModel /// </summary> /// <param name="controller">The view models controller.</param> public SelectSessionCostsViewModel(ISessionCostsController controller, Summary summary) { if (controller == null) { throw new ArgumentNullException("controller"); } else if (summary == null) { throw new ArgumentNullException("summary"); } Controller = controller; Summary = summary; CostIncludeCommand = new RelayCommand((parameter) => OnCostInclude(), (parameter) => !IsBusy && HasSelectedCost()); CostExcludeCommand = new RelayCommand((parameter) => OnCostExclude(), (parameter) => !IsBusy && HasSelectedChoosenCost()); CostSaveCommand = new RelayCommand((parameter) => OnCostSave(), (parameter) => !IsBusy && IsDataModified); CostClearCommand = new RelayCommand((parameter) => OnCostClear(), (parameter) => !IsBusy && ChoosenCosts != null && ChoosenCosts.Count > 0); CostCancelCommand = new RelayCommand((parameter) => OnCostCancel(), (parameter) => !IsBusy); CostCloseCommand = new RelayCommand((parameter) => OnCostClose((CancelEventArgs)parameter)); PopulateCosts(); }