private void CheckForInvalidProjectName() { var validationService = new ProjectNameService(GenContext.ToolBox.Repo.ProjectNameValidationConfig, () => new List <string>()); var projectName = GenContext.Current.ProjectName; var projectNameValidation = validationService.Validate(projectName); if (!projectNameValidation.IsValid) { var message = string.Empty; switch (projectNameValidation.Errors.FirstOrDefault()?.ErrorType) { case ValidationErrorType.ReservedName: message = string.Format(CoreStringRes.ErrorProjectReservedName, projectName); break; case ValidationErrorType.Regex: message = string.Format(CoreStringRes.ErrorProjectStartsWith, projectName, projectName[0]); break; } var title = CoreStringRes.ErrorTitleInvalidProjectName; var link = "https://github.com/microsoft/WindowsTemplateStudio/blob/release/docs/WTSNaming.md"; var vm = new InfoDialogViewModel(title, message, link, _styleProvider); var info = new Views.Common.InfoDialog(vm); GenContext.ToolBox.Shell.ShowModal(info); CancelWizard(); } }
private void CheckForMissingWorkloads(string platform, string requiredWorkloads) { var vsShell = GenContext.ToolBox.Shell as VsGenShell; if (vsShell != null) { var workloadsToCheck = requiredWorkloads.Split('|'); var missingWorkloads = new List <string>(); foreach (var workload in workloadsToCheck) { if (!vsShell.GetInstalledPackageIds().Contains(workload)) { missingWorkloads.Add(workload.GetRequiredWorkloadDisplayName()); } } if (missingWorkloads.Count > 0) { var title = UIStringRes.InfoDialogMissingWorkloadTitle; var message = string.Format(UIStringRes.InfoDialogRequiredWorkloadNotFoundMessage, platform.GetPlatformDisplayName(), missingWorkloads.Aggregate((i, j) => $"{i}, {j}")); var link = "https://docs.microsoft.com/en-us/visualstudio/install/install-visual-studio"; var vm = new InfoDialogViewModel(title, message, link, _styleProvider); var info = new Views.Common.InfoDialog(vm); GenContext.ToolBox.Shell.ShowModal(info); CancelWizard(); } } }
private void CheckForMissingWorkloads(string platform, string requiredWorkload) { var vsShell = GenContext.ToolBox.Shell as VsGenShell; if (vsShell != null) { if (!vsShell.GetInstalledPackageIds().Contains(requiredWorkload)) { var title = UIStringRes.InfoDialogMissingWorkloadTitle; var message = string.Format(UIStringRes.InfoDialogRequiredWorkloadNotFoundMessage, requiredWorkload.GetRequiredWorkloadDisplayName(), platform.GetPlatformDisplayName()); var link = "https://docs.microsoft.com/en-us/visualstudio/install/install-visual-studio"; var vm = new InfoDialogViewModel(title, message, link, _styleProvider); var info = new Views.Common.InfoDialog(vm); GenContext.ToolBox.Shell.ShowModal(info); CancelWizard(); } } }
private void CheckVSVersion(string platform) { var vsInfo = GenContext.ToolBox.Shell.GetVSTelemetryInfo(); if (!string.IsNullOrEmpty(vsInfo.VisualStudioExeVersion)) { // VisualStudioExeVersion is Empty on UI Test or VSEmulator execution var version = Version.Parse(vsInfo.VisualStudioExeVersion); if (platform == Platforms.Wpf && (version.Major < 16 || (version.Major == 16 && version.Minor < 3))) { var title = UIStringRes.InfoDialogInvalidVersionTitle; var message = UIStringRes.InfoDialogInvalidVSVersionForWPF; var link = "https://docs.microsoft.com/en-us/visualstudio/install/install-visual-studio"; var vm = new InfoDialogViewModel(title, message, link, _styleProvider); var info = new Views.Common.InfoDialog(vm); GenContext.ToolBox.Shell.ShowModal(info); CancelWizard(); } } }
private void CheckVSVersion(string platform, string requiredVersion) { var vsInfo = GenContext.ToolBox.Shell.GetVSTelemetryInfo(); if (!string.IsNullOrEmpty(requiredVersion) && !string.IsNullOrEmpty(vsInfo.VisualStudioExeVersion)) { // VisualStudioExeVersion is Empty on UI Test or VSEmulator execution var actualVSVersion = Version.Parse(vsInfo.VisualStudioExeVersion); var requiredVSVersion = Version.Parse(requiredVersion); if (actualVSVersion.CompareTo(requiredVSVersion) < 0) { var title = UIStringRes.InfoDialogInvalidVersionTitle; var message = string.Format(UIStringRes.InfoDialogInvalidVSVersion, platform, requiredVersion); var link = "https://docs.microsoft.com/en-us/visualstudio/install/install-visual-studio"; var vm = new InfoDialogViewModel(title, message, link, _styleProvider); var info = new Views.Common.InfoDialog(vm); GenContext.ToolBox.Shell.ShowModal(info); CancelWizard(); } } }