public MainViewModel(Window mainView, BaseStyleValuesProvider provider)
     : base(mainView, provider, NewProjectSteps)
 {
     Instance = this;
     ValidationService.Initialize(UserSelection.GetNames, UserSelection.GetPageNames);
     Navigation.OnFinish += OnFinish;
 }
        public UserSelection GetUserSelectionNewPage(string language, BaseStyleValuesProvider provider)
        {
            var newItem = new Views.NewItem.WizardShell(TemplateType.Page, language, provider);

            try
            {
                CleanStatusBar();

                GenContext.ToolBox.Shell.ShowModal(newItem);
                if (newItem.Result != null)
                {
                    TrackWizardCompletedTelemery(WizardTypeEnum.AddPage, newItem.Result.ItemGenerationType);

                    return(newItem.Result);
                }
                else
                {
                    AppHealth.Current.Telemetry.TrackWizardCancelledAsync(WizardTypeEnum.AddPage, GenContext.ToolBox.Shell.GetVsVersion(), GenContext.ToolBox.Repo.SyncInProgress).FireAndForget();
                }
            }
            catch (Exception ex) when(!(ex is WizardBackoutException))
            {
                newItem.SafeClose();
                ShowError(ex);
            }

            GenContext.ToolBox.Shell.CancelWizard();

            return(null);
        }
예제 #3
0
        public UserSelection StartNewProject(string platform, string language, BaseStyleValuesProvider provider)
        {
            var validators = new List <Validator>()
            {
                new ProjectReservedNamesValidator(),
                new ProjectStartsWithValidator(),
            };
            var projectName           = GenContext.Current.ProjectName;
            var projectNameValidation = Naming.Validate(projectName, validators);

            if (projectNameValidation.IsValid)
            {
                var newProjectView = new Views.NewProject.WizardShell(platform, language, provider);
                return(StartWizard(newProjectView, WizardTypeEnum.NewProject));
            }
            else
            {
                var message = string.Empty;
                switch (projectNameValidation.ErrorType)
                {
                case ValidationErrorType.ProjectReservedName:
                    message = string.Format(StringRes.ErrorProjectReservedName, projectName);
                    break;

                case ValidationErrorType.ProjectStartsWith:
                    message = string.Format(StringRes.ErrorProjectStartsWith, projectName, projectName[0]);
                    break;
                }

                var title = StringRes.ErrorTitleInvalidProjectName;
                MessageBox.Show(message, title, MessageBoxButton.OK, MessageBoxImage.Information);
                CancelWizard();
                return(null);
            }
        }
예제 #4
0
        public UserSelection GetUserSelection(string language, BaseStyleValuesProvider provider)
        {
            var mainView = new Views.NewProject.WizardShell(language, provider);

            try
            {
                CleanStatusBar();

                GenContext.ToolBox.Shell.ShowModal(mainView);
                if (mainView.Result != null)
                {
                    AppHealth.Current.Telemetry.TrackWizardCompletedAsync(WizardTypeEnum.NewProject, WizardActionEnum.GenerateProject, GenContext.ToolBox.Shell.GetVsVersion()).FireAndForget();

                    return(mainView.Result);
                }
                else
                {
                    AppHealth.Current.Telemetry.TrackWizardCancelledAsync(WizardTypeEnum.NewProject, GenContext.ToolBox.Shell.GetVsVersion(), GenContext.ToolBox.Repo.SyncInProgress).FireAndForget();
                }
            }
            catch (Exception ex) when(!(ex is WizardBackoutException))
            {
                mainView.SafeClose();
                ShowError(ex);
            }

            GenContext.ToolBox.Shell.CancelWizard();

            return(null);
        }
예제 #5
0
 public InfoDialogViewModel(string title, string message, string link, BaseStyleValuesProvider provider)
 {
     Title         = title;
     Description   = message;
     Link          = link;
     StylesService = new UIStylesService(provider);
 }
예제 #6
0
        public UserSelection StartAddTemplate(string language, BaseStyleValuesProvider provider, TemplateType templateType, WizardTypeEnum wizardTypeEnum)
        {
            var context         = GetProjectConfigInfo(language);
            var addTemplateView = new Views.NewItem.WizardShell(templateType, context, provider);

            return(StartWizard(addTemplateView, wizardTypeEnum));
        }
예제 #7
0
 public MainViewModel(WizardShell mainWindow, BaseStyleValuesProvider provider)
     : base(mainWindow, provider, NewItemSteps, false)
 {
     Instance                   = this;
     Navigation.OnFinish       += OnFinish;
     Navigation.OnStepUpdated  += OnStepUpdated;
     Navigation.IsStepAvailable = IsStepAvailableAsync;
 }
예제 #8
0
 public WizardShell(string language, BaseStyleValuesProvider provider)
 {
     Current     = this;
     _language   = language;
     ViewModel   = new MainViewModel(this, provider);
     DataContext = ViewModel;
     InitializeComponent();
     NavigationService.InitializeMainFrame(mainFrame, new MainPage());
 }
 public WizardShell(UserSelectionContext context, BaseStyleValuesProvider provider)
 {
     _context    = context;
     Current     = this;
     ViewModel   = new MainViewModel(this, provider);
     DataContext = ViewModel;
     InitializeComponent();
     NavigationService.InitializeMainFrame(mainFrame, new MainPage());
 }
예제 #10
0
 public BaseMainViewModel(Window mainView, BaseStyleValuesProvider provider, IEnumerable <StepData> steps, bool canFinish = true)
 {
     BaseInstance  = this;
     MainView      = mainView;
     SystemService = new SystemService();
     WizardStatus  = new WizardStatus();
     StylesService = new UIStylesService(provider);
     Navigation    = new WizardNavigation(mainView, steps, canFinish);
     ResourcesService.Instance.Initialize(mainView);
 }
예제 #11
0
        public UserSelection StartNewProject(UserSelectionContext context, string requiredWorkloads, BaseStyleValuesProvider provider)
        {
            _styleProvider = provider;

            CheckVSVersion(context.Platform);
            CheckForMissingWorkloads(context.Platform, requiredWorkloads);
            CheckForInvalidProjectName();

            var newProjectView = new Views.NewProject.WizardShell(context, provider);

            return(StartWizard(newProjectView, WizardTypeEnum.NewProject));
        }
예제 #12
0
        public UserSelection StartNewProject(string platform, string language, string requiredWorkload, BaseStyleValuesProvider provider)
        {
            _styleProvider = provider;

            CheckVSVersion(platform);
            CheckForMissingWorkloads(platform, requiredWorkload);
            CheckForInvalidProjectName();

            var newProjectView = new Views.NewProject.WizardShell(platform, language, provider);

            return(StartWizard(newProjectView, WizardTypeEnum.NewProject));
        }
예제 #13
0
 public MainViewModel(Window mainView, BaseStyleValuesProvider provider)
     : base(mainView, provider, NewProjectSteps)
 {
     Instance             = this;
     Navigation.OnFinish += OnFinish;
 }
 public MainViewModel(WizardShell mainWindow, BaseStyleValuesProvider provider)
     : base(mainWindow, provider, false)
 {
     Instance = this;
 }
예제 #15
0
        public UserSelection StartAddFeature(string language, BaseStyleValuesProvider provider)
        {
            var addFeatureView = new Views.NewItem.WizardShell(TemplateType.Feature, language, provider);

            return(StartWizard(addFeatureView, WizardTypeEnum.AddFeature));
        }
        public UserSelection StartNewProject(string platform, string language, BaseStyleValuesProvider provider)
        {
            var newProjectView = new Views.NewProject.WizardShell(platform, language, provider);

            return(StartWizard(newProjectView, WizardTypeEnum.NewProject));
        }
예제 #17
0
 public MainViewModel(Window mainView, BaseStyleValuesProvider provider)
     : base(mainView, provider)
 {
     Instance = this;
     ValidationService.Initialize(UserSelection.GetNames);
 }