private string FindModuleTemplatesRootDirectory(string solutionRoot, string globalTemplatesFolder) { var locateTemplateFolderService = new TemplateFolderService(solutionRoot); if (locateTemplateFolderService.TryGetAbsolutePath(_solutionScopeSettings.RelativeTemplatesFolder, out var templateFolderfullpath)) { return(templateFolderfullpath); } var moduleTemplateFolder = locateTemplateFolderService.Locate(); if (!string.IsNullOrWhiteSpace(moduleTemplateFolder)) { _solutionScopeSettings.RelativeTemplatesFolder = moduleTemplateFolder; _solutionScopeSettings.SaveSettings(); return(moduleTemplateFolder); } if (_solutionScopeSettings.SkipCreateFolderDialog) { return(globalTemplatesFolder); } var createFolderResult = MessageBox.Show( "The current solution does not have a local module templates folder with valid templates.\n\nDo you want to create one and unzip the example templates?", "Create solution scope Helix modules template folder", MessageBoxButton.YesNo); if (createFolderResult != MessageBoxResult.Yes) { var skipDialogResult = MessageBox.Show( "It is recommended to keep module templates under source control together with the solution.\n\nYou can manually create a folder in the solution root directory and copy in your Helix module templates.\n\nDo you want to skip this dialog in the future for the current solution?", "Create a solution scope Helix modules template folder", MessageBoxButton.YesNo); _solutionScopeSettings.SkipCreateFolderDialog = skipDialogResult == MessageBoxResult.Yes; _solutionScopeSettings.RelativeTemplatesFolder = string.Empty; _solutionScopeSettings.SaveSettings(); return(globalTemplatesFolder); } moduleTemplateFolder = TemplateInstallService.CreateTemplateFolder(solutionRoot); var globalManifests = new ReadAllManifestFilesService(globalTemplatesFolder, _initialTokens).Read(); foreach (var manifest in globalManifests.Where(m => m.TemplateType != TemplateType.Solution)) { TemplateInstallService.CopyDirectory(new DirectoryInfo(manifest.ManifestRootPath), moduleTemplateFolder); } _solutionScopeSettings.RelativeTemplatesFolder = moduleTemplateFolder; return(moduleTemplateFolder); }
private bool SaveSettings() { if (SolutionScopeSettings != null && !string.IsNullOrEmpty(SolutionTemplatesFolderTextbox.Text)) { SolutionScopeSettings.RelativeTemplatesFolder = SolutionTemplatesFolderTextbox.Text; SolutionScopeSettings.SaveSettings(); } AppScopeSettings.Current.ShowVsTokensTab = ShowContextTokens.IsChecked.HasValue && ShowContextTokens.IsChecked.Value; AppScopeSettings.Current.TemplatesFolder = GlobalTemplatesFolderTextbox.Text; if (!string.IsNullOrEmpty(TempFolderPath.Text) && Path.IsPathRooted(TempFolderPath.Text)) { AppScopeSettings.Current.TempFolderPath = TempFolderPath.Text; } AppScopeSettings.Current.DownloadTemplates = DownloadTemplates.IsChecked.HasValue && DownloadTemplates.IsChecked.Value; AppScopeSettings.Current.DownloadUrl = DownloadUrl.Text; return(AppScopeSettings.Current.SaveSettings()); }