private void MoveComponentHandler(object parameter)
        {
            if (SelectedComponent != null)
            {
                AddRelatedPipeDialog dialog = new AddRelatedPipeDialog("Select Destination Tag", true, SelectedComponent.PipeId);
                dialog.Show();

                //Select the component as user might have changed the component type
                //and this needs to reload the component type properties
                dialog.Closed += (s1, e1) =>
                                     {
                                         if (dialog.DialogResult.HasValue && dialog.DialogResult.Value)
                                         {
                                             if (dialog.SelectedPipe != null)
                                             {
                                                 SelectedComponent.PipeId = dialog.SelectedPipe.Id;

                                                 //need to CLONE due to the line "RaisePropertyChanged("Components");"
                                                 MovedComponent = CloneComponent(SelectedComponent);
                                                 MovedComponent.Pipe = new Pipe
                                                                           {
                                                                               Id = dialog.SelectedPipe.Id,
                                                                               Name = dialog.SelectedPipe.Name
                                                                           };

                                                 //remove
                                                 mPipe.PipeComponents.Remove(SelectedComponent);
                                                 RaiseChangeEvent();
                                                 OnCollectionChanged();
                                                 mSelectedComponent = null;

                                                 RaisePropertyChanged("Components");
                                             }
                                         }
                                     };

            }
        }
        private void AddButtonHandler(object parameter)
        {
            AddRelatedPipeDialog dialog = new AddRelatedPipeDialog();
            dialog.Show();
            dialog.Closed +=
                (s1, e1) =>
                {
                    if (dialog.DialogResult.HasValue && dialog.DialogResult.Value)
                    {
                        List<QuickPipe> toAdd = dialog.SelectedPipes.ToList();

                        foreach (QuickPipe newQuickPipe in toAdd)
                        {
                            IssueRelatedPipe issueRelatedPipe = (from x in mIssue.IssueRelatedPipes
                                                                 where x.PipeId == newQuickPipe.Id && x.IssueId == mIssue.Id
                                                                 select x).FirstOrDefault();
                            if (issueRelatedPipe == null)
                            {

                                IssueRelatedPipe irp = new IssueRelatedPipe
                                {
                                    IssueId = mIssue.Id,
                                    PipeId = newQuickPipe.Id,
                                    Pipe = new Pipe
                                        {
                                            FormattedName = newQuickPipe.Name,
                                            IsActive = newQuickPipe.IsActive
                                        }
                                };
                                mIssue.IssueRelatedPipes.Add(irp);
                            }
                        }

                        RaiseChangeEvent();
                        OnCollectionChanged();

                        RaisePropertyChanged("IssueRelatedPipes");
                    }
                };
        }