private void SaveSettings_Click(object sender, RoutedEventArgs e)
        {
            var selectedRootpath = RootDirectoryPath.Text;

            if (string.IsNullOrEmpty(selectedRootpath))
            {
                MessageBox.Show(this, "It is required to select a root directory.", "Error", MessageBoxButton.OK);
                return;
            }
            if (!Directory.Exists(selectedRootpath))
            {
                var confirmResult = MessageBox.Show("Directory does not exist. Do you want to create it?", "Confirm", MessageBoxButton.YesNo);
                if (confirmResult != MessageBoxResult.Yes)
                {
                    return;
                }
                Directory.CreateDirectory(selectedRootpath);
            }
            if (!TemplatesRootDirectoryPathRepository.Set(selectedRootpath))
            {
                MessageBox.Show("Could not save selected root path. Please ensure that you are running this Visual Studio instance as administrator.", "Error", MessageBoxButton.OK);
                return;
            }
            if (!RootHasTemplateManifests(selectedRootpath))
            {
                var confirmResult = MessageBox.Show("Selected root does not contain templates.\n\nDo you want to install the default templates (recommended)?", "Confirm", MessageBoxButton.YesNo);
                if (confirmResult != MessageBoxResult.Yes)
                {
                    return;
                }
                UnzipTemplatesArchive(selectedRootpath);
            }
            DialogResult = true;
            Close();
        }
        private string GetCurrentRootDirectory()
        {
            var rootDirectory = TemplatesRootDirectoryPathRepository.Get();

            if (!string.IsNullOrEmpty(rootDirectory))
            {
                return(rootDirectory);
            }
            MessageBox.Show("Please select where you want your Helix module and solution templates stored.\n\nIf you already selected a location please restart Visual Studio as administrator.", "Welcome", MessageBoxButton.OK);
            return(TemplatesRootDirectoryPathRepository.DefaultRootPath);
        }
コード例 #3
0
        private IHelixProjectTemplate GetHelixProjectTemplate(string solutionRootDirectory)
        {
            var manifestBrowseDialog = new ManifestDialog();

            manifestBrowseDialog.Initialize(TemplatesRootDirectoryPathRepository.Get(), solutionRootDirectory, _replacementTokens, _isExclusive);
            var dialogResult = manifestBrowseDialog.ShowModal();

            if (dialogResult.HasValue && dialogResult.Value)
            {
                return(manifestBrowseDialog.HelixProjectTemplate);
            }
            return(null);
        }
        private void UnpackTemplates_Clicked(object sender, RoutedEventArgs e)
        {
            var rootDirectory = TemplatesRootDirectoryPathRepository.Get();

            if (string.IsNullOrEmpty(rootDirectory) || !Directory.Exists(rootDirectory))
            {
                MessageBox.Show(this, "You need to set a valid root directory.", "Error", MessageBoxButton.OK);
                return;
            }
            UnpackBuiltInButton.IsEnabled = false;
            if (Directory.EnumerateDirectories(rootDirectory).Any())
            {
                var overwriteConfirmResult = MessageBox.Show("This will overwrite changes made to built-in templates in this root folder.\nAre you sure you want to continue?\n\nNote: Always make your modifications changes in copies and never directly in the built-in example templates.", "Confirm", MessageBoxButton.YesNo);
                if (overwriteConfirmResult != MessageBoxResult.Yes)
                {
                    UnpackBuiltInButton.IsEnabled = true;
                    return;
                }
                DeleteExistingBuiltInTemplates(rootDirectory);
            }
            UnzipTemplatesArchive(rootDirectory);
            MessageBox.Show("Built-in templates updated", "", MessageBoxButton.OK);
            UnpackBuiltInButton.IsEnabled = true;
        }