public IssueFinancialControlViewModel(Issue issue, IssueFinancialControl view) { mView = view; mIssue = issue; CompositionInitializer.SatisfyImports(this); mTimer.Interval = TimeSpan.FromMilliseconds(500); mTimer.Tick += RefreshFinancualTableTable; CmsWebServiceClient cmsWebServiceClient = new CmsWebServiceClient(Utils.WcfBinding, Utils.WcfEndPoint); IssueFinancials = new List<IssueFinancialTableViewModel>(); AddButtonCommand = new DelegateCommand<object>(AddButtonHandler, CanExecuteAddButtonHandler); DeleteButtonCommand = new DelegateCommand<object>(DeleteButtonHandler, CanExecuteDeleteButtonHandler); ShowHideBudgetCommand = new DelegateCommand<object>(ShowHideBudgetHandler, x=> true); ShowHideBaselineCommand = new DelegateCommand<object>(ShowHideBaselineHandler, x => true); IsBusy = true; cmsWebServiceClient.GetIssueFinancialVarianceCodesCompleted += (s1, e1) => { IssueFinancialVarianceCodes = e1.Result; RaisePropertyChanged("IssueFinancialVarianceCodes"); cmsWebServiceClient.GetIssueFinancialsCompleted += (s, e) => { mIssue.IssueFinancials = e.Result; DatabaseLoader.GetIssueSettings().ContinueWith(getAccrualCutOfDateTask => { CMS.UiFactory.StartNew(() => { mIssueSetting = getAccrualCutOfDateTask.Result; foreach (var issueFinancial in mIssue.IssueFinancials) { var financialTableItem = new IssueFinancialTableViewModel(issueFinancial, IssueFinancialVarianceCodes, view, CanUserModifyFinancialData(), mIssueSetting); mIssueFinancials.Add(financialTableItem); } mIssueFinancials = mIssueFinancials.OrderBy(x => x.Date).ToList(); RaisePropertyChanged("IssueFinancials"); mDictionary = Utils.BuildDictionaryForCollection(mIssue.IssueFinancials.Select(x => x.Id).ToList()); mIssue.ModifiedObjects.FinancialsModified = true; RaisePropertyChanged("TotalForecast"); ShowHideBaselineOnLoad(); IsBusy = false; }); }); }; cmsWebServiceClient.GetIssueFinancialsAsync(mIssue.Id); }; cmsWebServiceClient.GetIssueFinancialVarianceCodesAsync(); }
private void AddButtonHandler(object parameter) { if (CanExecuteAddButtonHandler(parameter)) { if (AreAllValid()) { MonthPicker monthPicker = new MonthPicker(mIssueFinancials.Select(x => x.Date).Distinct().ToList()); monthPicker.Closed += (s1, e1) => { if (monthPicker.DialogResult.HasValue && monthPicker.DialogResult.Value) { IsBusy = true; foreach (var date in monthPicker.Dates) { var issueFinancial = new IssueFinancial {IssueId = mIssue.Id, Date = date.Date, LastModifiedDate = DateTime.Now, LastModifiedUserId = CMS.User.Id}; var newIssueFinancialTableViewModel = new IssueFinancialTableViewModel(issueFinancial, IssueFinancialVarianceCodes, mView, CanUserModifyFinancialData(), mIssueSetting); newIssueFinancialTableViewModel.KpiBaselineReadOnly = mKpiBaselineEnabled; mIssueFinancials.Add(newIssueFinancialTableViewModel); mIssue.IssueFinancials.Add(issueFinancial); } mTimer.Start(); } }; monthPicker.Show(); } } }