/// <summary> /// This function is the callback used to execute the command when the menu item is clicked. /// See the constructor to see how the menu item is associated with this function using /// OleMenuCommandService service and MenuCommand class. /// </summary> /// <param name="sender">Event sender.</param> /// <param name="e">Event args.</param> private void MenuItemCallback(object sender, EventArgs e) { var dteSolutionHelper = new DteSolutionHelper(); var messageBoxHelper = new MessageBoxHelper(this.ServiceProvider); var selectedProject = dteSolutionHelper.GetSelectedProject(); string newProjectName; bool isOkButtonClicked = TextInputDialog .Show("Full Rename", "Enter new project name", selectedProject.Name, out newProjectName); if (!isOkButtonClicked) { return; } if (newProjectName == selectedProject.Name) { return; } var projectRenamer = new ProjectRenamer() { SolutionFullName = dteSolutionHelper.GetSolutionFullName(), ProjectFullName = selectedProject.FullName, ProjectName = selectedProject.Name, ProjectUniqueName = selectedProject.UniqueName, ProjectNameNew = newProjectName, SolutionProjects = dteSolutionHelper.GetSolutionProjects().Select(it => it.FullName) }; if (IsSharedProject(selectedProject)) { projectRenamer = new SharedTypeProjectRenamer { SolutionFullName = projectRenamer.SolutionFullName, ProjectFullName = selectedProject.FullName, ProjectName = selectedProject.Name, ProjectUniqueName = Path.ChangeExtension(selectedProject.UniqueName, null), ProjectNameNew = newProjectName, SolutionProjects = projectRenamer.SolutionProjects }; } try { projectRenamer.FullRename(); messageBoxHelper.ShowSuccessMessage(); } catch (IOException ioe) { messageBoxHelper.ShowErrorMessage(ioe, "Close all folders, text editors related to the project"); } catch (Exception ex) { messageBoxHelper.ShowErrorMessage(ex); } }
public static ProjectRenamer Create(Project selectedProject, RenameOptions renameOptions) { var dteSolutionHelper = new DteSolutionHelper(); ProjectRenamer projectRenamer; if (IsSharedProject(selectedProject)) { projectRenamer = new SharedTypeProjectRenamer { ProjectUniqueName = Path.ChangeExtension(selectedProject.UniqueName, null), }; } else { projectRenamer = new ProjectRenamer { ProjectUniqueName = selectedProject.UniqueName }; } projectRenamer.SolutionFullName = dteSolutionHelper.GetSolutionFullName(); projectRenamer.ProjectFullName = selectedProject.FullName; projectRenamer.ProjectName = selectedProject.Name; projectRenamer.ProjectNameNew = renameOptions.ProjectName; projectRenamer.SolutionProjects = dteSolutionHelper.GetSolutionProjects().Select(it => it.FullName); if (renameOptions.IsNecessaryToRenameClassNamespace) { projectRenamer.NamespaceRenamer = new NamespaceRenamer { IsNecessaryToRename = renameOptions.IsNecessaryToRenameClassNamespace, ProjectFiles = dteSolutionHelper.GetProjectFiles(selectedProject), SolutionFiles = dteSolutionHelper.GetSolutionFilesExceptSelectedProject(selectedProject) }; } return(projectRenamer); }