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);
         }
     }
 }
Exemple #2
0
        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);
                    }
                }
            }
        }