public AddRelatedOverrideModel(AddRelatedOverridesDialog view) { mGridRefreshTimer.Interval = TimeSpan.FromMilliseconds(500); mGridRefreshTimer.Tick += (sender, eventArgs) => { mGridRefreshTimer.Stop(); ProcessSearchFilter(); }; this.View = view; if (DesignerProperties.IsInDesignTool) { return; } LoadData(); SearchCommand = new DelegateCommand<object>(x => ProcessSearchFilter(), x => true); OkButtonCommand = new DelegateCommand<object>(OkButtonHander, CanExecuteOkButtonHandler); CancelButtonCommand = new DelegateCommand<object>(CancelButtonHander); AddInterlockButtonCommand = new DelegateCommand<object>(AddInterlockButtonHander, CanExecuteOkButtonHandler); DeleteInterlockButtonCommand = new DelegateCommand<object>(DeleteInterlockButtonHander, CanExecuteOkButtonHandler); SelectDateButton = new DelegateCommand<object>(SelectDateOverrideButtonHandler, CanExecuteOkButtonHandler); }
private void AddOverrideButtonHandler(object parameter) { AddRelatedOverridesDialog addRelatedOverrideDialog = new AddRelatedOverridesDialog(); addRelatedOverrideDialog.Show(); addRelatedOverrideDialog.Closed += (s1, e1) => { if (addRelatedOverrideDialog.DialogResult.HasValue && addRelatedOverrideDialog.DialogResult.Value) { var relatedOverrides = addRelatedOverrideDialog.SelectedRelatedOverrides; foreach (IssueRelatedOverride relatedOverride in relatedOverrides) { IssueRelatedOverride existingEquipments = (from x in mIssue.IssueRelatedOverrides where x.InterlockId == relatedOverride.InterlockId && x.Interlock.ControlSystemId == relatedOverride.Interlock.ControlSystemId select x).FirstOrDefault(); if (existingEquipments == null) { relatedOverride.IssueId = mIssue.Id; mIssue.IssueRelatedOverrides.Add(relatedOverride); } } RaiseChangeEvent(); OnCollectionChanged(); //Update the missing risk data async UpdateOverridesRisks(); } }; }