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