public void CreateProject(TemplateSelectionOptions templateOptions, ProjectDetails projectDetails, GitOptions gitOptions = null, object miscOptions = null) { PrintToTestRunner(templateOptions, projectDetails, gitOptions, miscOptions); ReproStep("Create a new project", templateOptions, projectDetails, gitOptions, miscOptions); var newProject = new NewProjectController(); if (projectDetails.AddProjectToExistingSolution) { newProject.Open(projectDetails.SolutionName); } else { newProject.Open(); } TakeScreenShot("Open"); OnSelectTemplate(newProject, templateOptions); OnEnterTemplateSpecificOptions(newProject, projectDetails.ProjectName, miscOptions); OnEnterProjectDetails(newProject, projectDetails, gitOptions, miscOptions); OnClickCreate(newProject, projectDetails); FoldersToClean.Add(projectDetails.SolutionLocation); }
public NewProject(Main frmMain) { InitializeComponent(); frmForm = frmMain; ProjectDirectory = ""; ProjectName = ""; controller = new NewProjectController(this); }
protected virtual void OnClickCreate(NewProjectController newProject, ProjectDetails projectDetails) { if (projectDetails.AddProjectToExistingSolution) { newProject.Create(); } else { Session.RunAndWaitForTimer(() => newProject.Create(), "Ide.Shell.SolutionOpened"); } }
protected virtual void OnEnterProjectDetails(NewProjectController newProject, ProjectDetails projectDetails, GitOptions gitOptions = null, object miscOptions = null) { if (!newProject.SetProjectName(projectDetails.ProjectName, projectDetails.AddProjectToExistingSolution)) { throw new CreateProjectException(string.Format("Failed at entering ProjectName as '{0}'", projectDetails.ProjectName)); } if (!string.IsNullOrEmpty(projectDetails.SolutionName)) { if (!newProject.SetSolutionName(projectDetails.SolutionName, projectDetails.AddProjectToExistingSolution)) { throw new CreateProjectException(string.Format("Failed at entering SolutionName as '{0}'", projectDetails.SolutionName)); } } if (!string.IsNullOrEmpty(projectDetails.SolutionLocation)) { if (!newProject.SetSolutionLocation(projectDetails.SolutionLocation)) { throw new CreateProjectException(string.Format("Failed at entering SolutionLocation as '{0}'", projectDetails.SolutionLocation)); } } if (!newProject.CreateProjectInSolutionDirectory(projectDetails.ProjectInSolution)) { throw new CreateProjectException(string.Format("Failed at entering ProjectInSolution as '{0}'", projectDetails.ProjectInSolution)); } if (gitOptions != null && !projectDetails.AddProjectToExistingSolution) { if (!newProject.UseGit(gitOptions)) { throw new CreateProjectException(string.Format("Failed at setting Git as - '{0}'", gitOptions)); } } TakeScreenShot("AfterProjectDetailsFilled"); }
protected virtual void OnSelectTemplate(NewProjectController newProject, TemplateSelectionOptions templateOptions) { if (!newProject.SelectTemplateType(templateOptions.CategoryRoot, templateOptions.Category)) { throw new TemplateSelectionException(string.Format("Failed to select Category '{0}' under '{1}'", templateOptions.Category, templateOptions.CategoryRoot)); } TakeScreenShot("TemplateCategorySelected"); if (!newProject.SelectTemplate(templateOptions.TemplateKindRoot, templateOptions.TemplateKind)) { throw new TemplateSelectionException(string.Format("Failed to select Template '{0}' under '{1}'", templateOptions.TemplateKind, templateOptions.TemplateKindRoot)); } TakeScreenShot("TemplateSelected"); if (!newProject.Next()) { throw new TemplateSelectionException("Clicking Next failed after selecting template"); } TakeScreenShot("NextAfterTemplateSelected"); }
protected virtual void OnEnterTemplateSpecificOptions(NewProjectController newProject, string projectName, object miscOptions) { }