public AddEditKpiVarianceCodeViewModel(IssueKpi kpi, CommonUtils.KpiVarianceCode varianceCode, List<IssueKpiVarianceCode> issueKpiVarianceCodes) { IssueKpiVarianceCodes = issueKpiVarianceCodes; mKpi = kpi; mVarianceCode = varianceCode; OkButtonCommand = new DelegateCommand<object>(OkButtonHandler, CanExecuteOkButtonHandler); CancelButtonCommand = new DelegateCommand<object>(CanelButtonHandler, CanExecuteOkButtonHandler); }
public IssueKpiTableViewModel(IssueKpi kpi, List<IssueKpiVarianceCode> issueKpiVarianceCodes, IssueKpiControl view, bool canUserModifyActuals, IssueSetting issueSetting) { mView = view; mKpi = kpi; mCanUserModifyActuals = canUserModifyActuals; IssueKpiVarianceCodes = issueKpiVarianceCodes; mIssueSetting = issueSetting; ValueGenerationVarianceCommand = new DelegateCommand<object>(ValueGenerationVarianceButtonHandler, CanExecuteOkButtonHandler); KpiVarianceCommand = new DelegateCommand<object>(KpiVarienceButtonHandler, CanExecuteOkButtonHandler); }
public AddEditKpiVarianceCodeDialog(IssueKpi kpi, CommonUtils.KpiVarianceCode varianceCode, List<IssueKpiVarianceCode> issueKpiVarianceCodes) { InitializeComponent(); CompositionInitializer.SatisfyImports(this); Title = "Variance"; if (varianceCode == CommonUtils.KpiVarianceCode.Kpi) Title = String.Format("Reason For KPI Variance ({0:MMM yy})", kpi.Date); if (varianceCode == CommonUtils.KpiVarianceCode.ValueGeneration) Title = String.Format("Reason For Value Generation Variance ({0:MMM yy})", kpi.Date); var viewModel = new AddEditKpiVarianceCodeViewModel(kpi, varianceCode, issueKpiVarianceCodes); viewModel.View = this; DataContext = viewModel; }
private void AddButtonHandler(object parameter) { if (CanExecuteAddButtonHandler(parameter)) { if (AreAllValid()) { MonthPicker monthPicker = new MonthPicker(mIssueKpis.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 previousMonthKpi = mIssue.IssueKpis.FirstOrDefault(x => x.IssueId == mIssue.Id && x.Date == date.Date.AddMonths(-1)); var issueKpi = new IssueKpi {IssueId = mIssue.Id, Date = date.Date, LastModifiedDate = DateTime.Now, LastModifiedUserId = CMS.User.Id}; if (previousMonthKpi != null) issueKpi.KpiDescription = previousMonthKpi.KpiDescription; //Copy Kpi description from previous months var newIssueKpiTableViewModel = new IssueKpiTableViewModel(issueKpi, IssueKpiVarianceCodes, mView, CanUserModifyActuals(), mIssueSetting); newIssueKpiTableViewModel.ValueGenerationTargetReadOnly = mValueGenerationTargetReadOnly; newIssueKpiTableViewModel.BaselineReadOnly = mBaselineReadOnly; mIssueKpis.Add(newIssueKpiTableViewModel); mIssue.IssueKpis.Add(issueKpi); } mTimer.Start(); } }; monthPicker.Show(); } } }
private void SaveIssueKpis(Issue issue, Issue originalIssue, CmsEntities cee) { log.Verbose("SaveIssueKpis()"); //Delete SaveIssueKpis cee.DeleteWhere<IssueKpi>(cee, x => x.IssueId == issue.Id); cee.Configuration.AutoDetectChangesEnabled = false; //Save SaveIssueKpis foreach (IssueKpi issueKpi in issue.IssueKpis.ToList()) { var newKpi = new IssueKpi { IssueId = issue.Id, Date = issueKpi.Date, ValueGenerationActual = issueKpi.ValueGenerationActual, ValueGenerationTarget = issueKpi.ValueGenerationTarget, KpiBaseline = issueKpi.KpiBaseline, KpiTarget = issueKpi.KpiTarget, KpiActual = issueKpi.KpiActual, KpiVarianceCodeId = issueKpi.KpiVarianceCodeId, ValueGenerationVarianceCodeId = issueKpi.ValueGenerationVarianceCodeId, KpiVarianceNote = issueKpi.KpiVarianceNote, ValueGenerationVarianceNote = issueKpi.ValueGenerationVarianceNote, KpiDescription = issueKpi.KpiDescription, Verified = issueKpi.Verified, VerifiedDate = issueKpi.VerifiedDate, VerifiedUserId = issueKpi.VerifiedUserId, LastModifiedDate = issueKpi.LastModifiedDate, LastModifiedUserId = issueKpi.LastModifiedUserId, }; originalIssue.IssueKpis.Add(newKpi); } cee.Configuration.AutoDetectChangesEnabled = true; }