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