Пример #1
0
        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();
            }
        }
Пример #2
0
        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();
                }
            }
        }
Пример #3
0
        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();
                }
            }
        }
Пример #4
0
        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();
                }
            }
        }
Пример #5
0
        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();
                }
            }
        }