public void MarkAsMostRecentlyUsed(ProjectSet projectSet, int mruSize) { if (mruSize > 0) { int index = ProjectSets.IndexOf(projectSet); if (index >= mruSize) { ProjectSets.RemoveAt(index); ProjectSets.Insert(0, projectSet); } } }
private void OnAddProfile(object sender, EventArgs e) { Dispatcher.CurrentDispatcher.VerifyAccess(); SolutionManager solMgr = GetSolutionManager(); if (solMgr != null) { var solutionHierarchy = solMgr.GetSolutionHierarchy(); ProjectSet projectSet = new ProjectSet("New Project Set"); projectSet.PopulateFrom(solutionHierarchy); ProjectSetViewModel projectSetVm = new ProjectSetViewModel(projectSet, solutionHierarchy); bool?result = EditProjectSetDialog.ShowDialog(m_serviceProvider, projectSetVm, "Create Project Set", () => { if (m_repositoryViewModel.ProjectSets.Any(ps => ps.Name.Equals(projectSet.Name, StringComparison.OrdinalIgnoreCase))) { Microsoft.VisualStudio.VSConstants.MessageBoxResult overwriteResponse = m_interactionService.ShowDialog("Overwrite Project Set", String.Format("A project set with the name \"{0}\" already exists in this solution. Do you want to overwrite it?", projectSet.Name), OLEMSGBUTTON.OLEMSGBUTTON_YESNO, OLEMSGDEFBUTTON.OLEMSGDEFBUTTON_SECOND, OLEMSGICON.OLEMSGICON_QUERY); if (overwriteResponse == Microsoft.VisualStudio.VSConstants.MessageBoxResult.IDNO) { return(false); } } return(true); }); if (result == true) { int replacementIndex = -1; for (int i = 0; i < m_repository.ProjectSets.Count; i++) { if (m_repository.ProjectSets[i].Name.Equals(projectSet.Name, StringComparison.OrdinalIgnoreCase)) { replacementIndex = i; break; } } if (replacementIndex != -1) { m_repository.ProjectSets[replacementIndex] = projectSet; } else { m_repository.ProjectSets.Add(projectSet); } } } }