private static bool InitUsingBootstrappers(out ProjectBootStrapper projectBootstrapper) { projectBootstrapper = null; IRootPathAcquirer acquirer = new RegistryHelper(RegistryPath); var defaultPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), DefaultRootFolderName); var bs = new AppBootStrapper(acquirer, defaultPath); var mode = bs.DetectProjectMode(); switch (mode) { case AppProjectsStructureMode.None: new NoProjectsExistWarning(bs).ShowDialog(); return false; case AppProjectsStructureMode.MultipleUnchosen: var form = new ChooseProject(bs.GetProjects()); form.ShowDialog(); if (!String.IsNullOrWhiteSpace(form.SelectedPath)) bs.SetProjectName(form.SelectedPath); if (bs.DetectProjectMode() == AppProjectsStructureMode.MultipleUnchosen) return false; break; case AppProjectsStructureMode.Single: bs.SetProjectNameToSingle(); break; } var debug = new TraceOutput(DefaultEventAggregator); debug.Show(); projectBootstrapper = bs.GetProjectBootstrapper(ReportsDirectoryName, DataSourceDirectoryName, ActionsDirectoryName); projectBootstrapper.ExecuteProjectBootStrapperFile(BootStrapperBatchFileName); projectBootstrapper.CopyProjectFiles(); projectBootstrapper.LoadProjectAssemblies(); ProjectPath = projectBootstrapper.ProjectPath; ProjectReportPath = Path.Combine(ProjectPath, ReportsDirectoryName); return true; }
public NoProjectsExistWarning(AppBootStrapper bootStrapper) : this() { _bootStrapper = bootStrapper; memoEdit1.Text = memoEdit1.Text.Replace("@PATH", bootStrapper.RootPath); }