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();
                        }
                    };
        }