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(); }
public IssueFinancialTableViewModel(IssueFinancial financial, List<IssueFinancialVarianceCode> issueFinancialVarianceCodes, IssueFinancialControl view, bool userCanModify, IssueSetting issueSetting) { mView = view; mFinancial = financial; mUserCanModify = userCanModify; IssueFinancialVarianceCodes = issueFinancialVarianceCodes; mIssueSetting = issueSetting; ActualVsBaselineVarianceCommand = new DelegateCommand<object>(ActualvsBaselineButtonHandler, CanExecuteOkButtonHandler); ActualVsForecastVarianceCommand = new DelegateCommand<object>(ActualvsForecastButtonHandler, CanExecuteOkButtonHandler); OpenPurchaseOrderCommand = new DelegateCommand<object>(OpenPurchaseOrderCommandHandler, CanExecuteOpenPurchaseOrderCommandHandler); }
public void IssueLoaded() { mIssue = mIssuePanelViewModel.Issue; SaveButton.Visibility = Visibility.Visible; if (mIssue.Id > 0) { RemoveButton.Visibility = Visibility.Visible; CopyButton.Visibility = Visibility.Visible; } DataContext = mIssuePanelViewModel; if (mIssuePanelViewModel.IssueLoadedAction != null) mIssuePanelViewModel.IssueLoadedAction -= IssueLoaded; //Load IssueControl mIssueControl = new IssueControl(mIssue, this); IssueControlContentPresenter.Content = mIssueControl; mRiskReviewControl = new RiskReviewControl(mIssue); RiskReviewTab.Content = mRiskReviewControl; Utils.SetUpChangeEvents(mRiskReviewControl, EventAggregator, mIssue); mApprovalsControl = new ApprovalsControl(mIssue); ApprovalTab.Content = mApprovalsControl; Utils.SetUpChangeEvents(mApprovalsControl, EventAggregator, mIssue); mIssueDistributionControl = new IssueDistributionControl(mIssue); DistributionTab.Content = mIssueDistributionControl; mIssueTrackingControl = new IssueTrackingControl(mIssue); TrackingTab.Content = mIssueTrackingControl; mIssueSystemReferencesControl = new IssueSystemReferencesControl(mIssue); ReferencesTab.Content = mIssueSystemReferencesControl; mCloseoutControl = new CloseoutControl(mIssue); CloseoutTab.Content = mCloseoutControl; Utils.SetUpChangeEvents(mCloseoutControl, EventAggregator, mIssue); TestingTab.Content = new IssueTestingControl(mIssuePanelViewModel); TrainingTab.Content = new IssueTrainingControl(mIssuePanelViewModel); //SCOPE ScopeGeneralTab.Content = new IssueScopeGeneralControl(mIssuePanelViewModel); //ImplementationDetails column ScopeExclusionsTab.Content = new IssueScopeExclusionsControl(mIssuePanelViewModel); //new column ScopeAssumptionsTab.Content = new IssueScopeAssumptionsControl(mIssuePanelViewModel); //new column ConstraintsTab.Content = new IssueConstraintsControl(mIssuePanelViewModel); //new column Utils.SetUpChangeEvents((UIElement) TestingTab.Content, EventAggregator, mIssue); Utils.SetUpChangeEvents((UIElement) TrainingTab.Content, EventAggregator, mIssue); Utils.SetUpChangeEvents((UIElement) ScopeGeneralTab.Content, EventAggregator, mIssue); Utils.SetUpChangeEvents((UIElement) ScopeExclusionsTab.Content, EventAggregator, mIssue); Utils.SetUpChangeEvents((UIElement) ScopeAssumptionsTab.Content, EventAggregator, mIssue); Utils.SetUpChangeEvents((UIElement) ConstraintsTab.Content, EventAggregator, mIssue); //IssueTrendNotices mIssueTrendNoticesControl = new IssueTrendNoticesControl(mIssue); mIssueTrendNoticesControl.UpdateTrendNoticeCount += count => { mIssue.IssueRelatedItemsCount.TrendNotices = count; SetTabHeadersText(); }; TrendNoticeTab.Content = mIssueTrendNoticesControl; //MechanicalControl if (CMS.EffectivePrivileges.AdminTab.CanView || CMS.EffectivePrivileges.MechanicalTab.CanView) { MechanicalTab.Visibility = Visibility.Visible; mIssueRelatedMechanicalControl = new IssueRelatedMechanicalControl(mIssue); mIssueRelatedMechanicalControl.CollectionChanged += count => { mIssue.IssueRelatedItemsCount.Mechanicals = count; SetTabHeadersText(); }; MechanicalTab.Content = mIssueRelatedMechanicalControl; } else { MechanicalTab.Visibility = Visibility.Collapsed; } //ElectricalControl if (CMS.EffectivePrivileges.AdminTab.CanView || CMS.EffectivePrivileges.ElectricalTab.CanView) { ElectricalTab.Visibility = Visibility.Visible; mIssueRelatedElectricalControl = new IssueRelatedElectricalControl(mIssue); mIssueRelatedElectricalControl.CollectionChanged += count => { mIssue.IssueRelatedItemsCount.Electricals = count; SetTabHeadersText(); }; ElectricalTab.Content = mIssueRelatedElectricalControl; } else { ElectricalTab.Visibility = Visibility.Collapsed; } //InstrumentControl if (CMS.EffectivePrivileges.AdminTab.CanView || CMS.EffectivePrivileges.InstrumentTab.CanView) { InstrumentTab.Visibility = Visibility.Visible; mIssueRelatedInstrumentControl = new IssueRelatedInstrumentControl(mIssue); mIssueRelatedInstrumentControl.CollectionChanged += count => { mIssue.IssueRelatedItemsCount.Instruments = count; SetTabHeadersText(); }; InstrumentTab.Content = mIssueRelatedInstrumentControl; } else { InstrumentTab.Visibility = Visibility.Collapsed; } //DocumentControl if (CMS.EffectivePrivileges.AdminTab.CanView || CMS.EffectivePrivileges.DocumentTab.CanView) { DocumentationTab.Visibility = Visibility.Visible; mIssueRelatedDocumentControl = new IssueRelatedDocumentControl(mIssue); mIssueRelatedDocumentControl.CollectionChanged += count => { mIssue.IssueRelatedItemsCount.Documents = count; SetTabHeadersText(); }; DocumentationTab.Content = mIssueRelatedDocumentControl; } else { DocumentationTab.Visibility = Visibility.Collapsed; } //Control if (CMS.EffectivePrivileges.AdminTab.CanView || CMS.EffectivePrivileges.ControlTab.CanView) { ControlTab.Visibility = Visibility.Visible; mIssueRelatedControlControl = new IssueRelatedControlControl(mIssue); mIssueRelatedControlControl.CollectionChanged += count => { mIssue.IssueRelatedItemsCount.Controls = count; SetTabHeadersText(); }; ControlTab.Content = mIssueRelatedControlControl; } else { ControlTab.Visibility = Visibility.Collapsed; OverridesTab.Visibility = Visibility.Collapsed; } //MobilePlantTab if (CMS.EffectivePrivileges.AdminTab.CanView || CMS.EffectivePrivileges.MobilePlantTab.CanView) { MobilePlantTab.Visibility = Visibility.Visible; //MobilePlantControl mIssueRelatedMobilePlantControl = new IssueRelatedMobilePlantControl(mIssue); mIssueRelatedMobilePlantControl.CollectionChanged += count => { mIssue.IssueRelatedItemsCount.Mobiles = count; SetTabHeadersText(); }; MobilePlantTab.Content = mIssueRelatedMobilePlantControl; } else { MobilePlantTab.Visibility = Visibility.Collapsed; } //PipesTab if (CMS.EffectivePrivileges.AdminTab.CanView || CMS.EffectivePrivileges.PipeTab.CanView) { PipesTab.Visibility = Visibility.Visible; //PipesControl mIssueRelatedPipesControl = new IssueRelatedPipesControl(mIssue); mIssueRelatedPipesControl.CollectionChanged += count => { mIssue.IssueRelatedItemsCount.Pipes = count; SetTabHeadersText(); }; PipesTab.Content = mIssueRelatedPipesControl; } else { PipesTab.Visibility = Visibility.Collapsed; } //the following control need to be loaded as they are control via workflow control (issuetabcontrol manager) //OverridesControl OverridesTab.Visibility = Visibility.Visible; mIssueRelatedOverridesControl = new IssueRelatedOverridesControl(mIssue); mIssueRelatedOverridesControl.CollectionChanged += count => { mIssue.IssueRelatedItemsCount.Overrides = count; SetTabHeadersText(); }; OverridesTab.Content = mIssueRelatedOverridesControl; //ActionsControl mIssueRelatedActionsControl = new IssueRelatedActionsControl(mIssue); mIssueRelatedActionsControl.IssuesPanel = this; mIssueRelatedActionsControl.CollectionChanged += count => { mIssue.IssueRelatedItemsCount.Actions = count; SetTabHeadersText(); }; ActionsTab.Content = mIssueRelatedActionsControl; //MilestonesControl mIssueMilestonesControl = new IssueMilestonesControl(mIssue); mIssueMilestonesControl.CollectionChanged += count => { mIssue.IssueRelatedItemsCount.Milestones = count; SetTabHeadersText(); }; MilestonesTab.Content = mIssueMilestonesControl; //IssueRelatedIssueControl mIssueRelatedIssuesControl = new IssueRelatedIssuesControl(mIssue); mIssueRelatedIssuesControl.CollectionChanged += count => { mIssue.IssueRelatedItemsCount.Issues = count; SetTabHeadersText(); }; RelatedIssuesTab.Content = mIssueRelatedIssuesControl; //ResponseControl mIssueResponseControl = new IssueResponseControl(mIssue); mIssueResponseControl.ControlLoaded += () => ResponseTab.Content = mIssueResponseControl; mIssueFinancialControl = new IssueFinancialControl(mIssue); FinancialTab.Content = mIssueFinancialControl; mIssueKpiControl = new IssueKpiControl(mIssue); KpiTab.Content = mIssueKpiControl; //ISSUE ATTACHMENTS (but wait until dist user loaded as we need them! mIssueDistributionControl.ViewModel.DistributionUsersLoaded += (users) => { mIssuePanelViewModel.RaisePropertyChanged("FinancialTabEnabled"); //This will switch the lock or unlock icon mIssuePanelViewModel.RaisePropertyChanged("Issue"); mIssueFilesControl = new IssueFilesControl(mIssue); AttachmentsTab.Content = mIssueFilesControl; mIssueFilesControl.CollectionChanged += count => { mIssue.IssueRelatedItemsCount.Attachments = count; SetTabHeadersText(); }; AttachmentsTab.Content = mIssueFilesControl; }; //IssueLearnings mIssueLearningControl = new IssueLearningControl(mIssue); mIssueLearningControl.UpdateLearningCount += count => { mIssue.IssueRelatedItemsCount.Learnings = count; SetTabHeadersText(); }; LearningTab.Content = mIssueLearningControl; //Apply Tab Control Manager var issueTabControlManager = new IssueTabControlManager(this); issueTabControlManager.Apply(); //Tab Counts -------------------------------------------------- var cmsWebServiceClient = new CmsWebServiceClient(Utils.WcfBinding, Utils.WcfEndPoint); cmsWebServiceClient.GetIssueRelatedItemsCountCompleted += (s1, e1) => { mIssue.IssueRelatedItemsCount = e1.Result; SetHeadersBindings(); SetTabHeadersText(); }; cmsWebServiceClient.GetIssueRelatedItemsCountAsync(mIssue.Id); //--------------------------------------------------------------- }