Example #1
0
        private void OnEditProfile(object sender, EventArgs e)
        {
            Dispatcher.CurrentDispatcher.VerifyAccess();

            SolutionManager solMgr = GetSolutionManager();

            if (solMgr != null)
            {
                ProjectSetSummaryViewModel item = SelectedItem;
                if (item != null)
                {
                    ProjectSetViewModel projSetVm = new ProjectSetViewModel(item.ModelItem, solMgr.GetSolutionHierarchy());
                    projSetVm.BeginEdit();
                    try
                    {
                        bool?result = EditProjectSetDialog.ShowDialog(m_serviceProvider, projSetVm, "Edit Project Set", () =>
                        {
                            if (m_repositoryViewModel.ProjectSets.Any(ps => ps.Name.Equals(projSetVm.Name, StringComparison.OrdinalIgnoreCase) && !object.ReferenceEquals(ps.ModelItem, projSetVm.ModelItem)))
                            {
                                m_interactionService.ShowDialog("Name Conflict", String.Format("Another project set already has the name \"{0}\". Please select another name.", projSetVm.Name), OLEMSGBUTTON.OLEMSGBUTTON_OK, OLEMSGDEFBUTTON.OLEMSGDEFBUTTON_FIRST, OLEMSGICON.OLEMSGICON_WARNING);
                                return(false);
                            }

                            return(true);
                        });

                        if (result == true)
                        {
                            projSetVm.EndEdit();
                            m_repository.ProjectSets.Remove(projSetVm.ModelItem);
                            m_repository.ProjectSets.Add(projSetVm.ModelItem);
                            SelectedItem = item;
                        }
                        else
                        {
                            projSetVm.CancelEdit();
                            m_repository.ProjectSets.Remove(projSetVm.ModelItem);
                            m_repository.ProjectSets.Add(projSetVm.ModelItem);
                            SelectedItem = item;
                        }
                    }
                    catch
                    {
                        projSetVm.CancelEdit();
                    }
                }
            }
        }