Exemple #1
0
        private async Task CheckFirstUseAsync()
        {
            var settingsService        = _container.Resolve <ILauncherSettingsService>();
            var profileSettingsService = _container.Resolve <IProfileService>();
            var eventRegistry          = _container.Resolve <ApplicationEventRegistry>();

            if (!File.Exists(Path.Combine(ApplicationPaths.StoragePath, "settings.json")) ||
                string.IsNullOrEmpty(profileSettingsService.SelectedProfileName))
            {
                using (var container = _container.GetChildContainer())
                {
                    container.Register <WizardController>().AsSingleton();

                    var wizard = new Wizard();
                    var steps  = new List <WizardStepBase>
                    {
                        new FirstUseWelcomeStepViewModel(container),
                        new CreateProfileWizardStepViewModel(container),
                        new InstallationsWizardStepViewModel(container),
                    };

                    var eventArgs = new AppendFirstUseWizardStepsEventArgs();

                    await eventRegistry.InvokeAppendFirstUseWizardStepsAsync(this, eventArgs);

                    steps.AddRange(eventArgs.Steps);

                    var viewModel = new WizardViewModel(container, steps.ToArray());

                    Current.MainWindow = wizard;

                    _splashScreen.Hide();

                    wizard.DataContext = viewModel;
                    wizard.ShowDialog();

                    _splashScreen.Show();
                }

                settingsService.SetValue(LauncherCategories.Launcher, LauncherSettingKeys.IsFirstUseComplete, true);
            }
        }
Exemple #2
0
        internal async Task InvokeAppendFirstUseWizardStepsAsync(object sender, AppendFirstUseWizardStepsEventArgs e)
        {
            var handler = AppendFirstUseWizardSteps;

            await InvokeAsync(handler, sender, e);
        }