コード例 #1
0
        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);
        }