private void ShowSplashScreen(GeneralSettingsModel generalSettingsModel) { var splashWindow = new SplashWindow { DataContext = new SplashWindowViewModel() }; SplashScreen = splashWindow; if (generalSettingsModel.RememberScreenPosition) { var positionsInfo = new WindowPositionsInfo { Width = splashWindow.Width, Height = splashWindow.Height, DisplaySettings = generalSettingsModel.DisplaySettings, StartupLocation = WindowStartupLocation.CenterScreen }; if (positionsInfo.DisplaySettings != null) { positionsInfo.DisplaySettings.Maximized = false; } WindowPositionsService.SetPosition(splashWindow, positionsInfo); } splashWindow.Show(); ResetSplashCreated.Set(); Dispatcher.Run(); }
private void ShowMainWindow() { LogProvider.Log.Info($"Screen: {Utils.GetScreenResolution()}"); LogProvider.Log.Info($"Dpi: {Utils.GetCurrentDpi()}"); try { var settingsService = ServiceLocator.Current.GetInstance <ISettingsService>(); var settingsModel = settingsService.GetSettings(); mainWindowViewModel = new MainWindowViewModel(); var mainRadWindow = (RadWindow)Shell; mainRadWindow.DataContext = mainWindowViewModel; if (settingsModel != null && settingsModel.GeneralSettings != null) { // set logging LogProvider.Log.IsAdvanced = settingsModel.GeneralSettings.IsAdvancedLoggingEnabled; LogProvider.Log.Info($"Advanced logging: {settingsModel.GeneralSettings.IsAdvancedLoggingEnabled}"); if (settingsModel.GeneralSettings.RememberScreenPosition) { var positionsInfo = new WindowPositionsInfo { Width = mainWindowViewModel.WindowMinWidth, Height = mainWindowViewModel.AppStartupHeight, DisplaySettings = settingsModel?.GeneralSettings?.DisplaySettings, StartupLocation = WindowStartupLocation.Manual }; WindowPositionsService.SetPosition(mainRadWindow, positionsInfo); } } mainRadWindow.IsTopmost = true; mainRadWindow.Show(); mainRadWindow.IsTopmost = false; App.SplashScreen.CloseSplashScreen(); var mainWindow = mainRadWindow.ParentOfType <Window>(); if (mainWindow != null && App.Current.MainWindow != mainWindow) { App.Current.MainWindow = mainWindow; } if (App.IsUpdateAvailable) { mainWindowViewModel.IsActive = true; mainWindowViewModel.ShowUpdate(); mainWindowViewModel.IsActive = false; } var licenseService = ServiceLocator.Current.GetInstance <ILicenseService>(); if (!isLicenseValid || licenseService.IsTrial || (licenseService.IsRegistered && licenseService.IsExpiringSoon) || !licenseService.IsRegistered) { var registrationViewModel = new RegistrationViewModel(false); mainWindowViewModel.RegistrationViewRequest.Raise(registrationViewModel); mainWindowViewModel.UpdateHeader(); } if (!licenseService.IsRegistered) { System.Windows.Application.Current.Shutdown(); } mainWindowViewModel.IsTrial = licenseService.IsTrial; mainWindowViewModel.IsUpgradable = licenseService.IsUpgradable; mainWindowViewModel.IsActive = true; if (settingsModel != null && settingsModel.GeneralSettings != null) { try { var validationResults = ServiceLocator.Current.GetInstance <ISiteConfigurationService>() .ValidateSiteConfigurations().ToArray(); var detectedSites = validationResults.Where(x => x.IsNew && x.IsDetected).ToArray(); if (detectedSites.Length > 0) { var sitesSetupViewModel = new SitesSetupViewModel(detectedSites); mainWindowViewModel.SitesSetupViewRequest?.Raise(sitesSetupViewModel); } var incorrectlyConfiguredSites = validationResults .Where(x => x.HasIssue && x.IsEnabled && settingsModel.GeneralSettings.RunSiteDetection) .ToArray(); if (incorrectlyConfiguredSites.Length > 0) { var incorrectlyConfiguredSitesViewModel = new IncorrectlyConfiguredSitesViewModel(incorrectlyConfiguredSites); mainWindowViewModel.IncorrectlyConfiguredSitesViewRequest?.Raise(incorrectlyConfiguredSitesViewModel); } } catch (Exception ex) { LogProvider.Log.Error(this, "Site validation failed.", ex); } } mainWindowViewModel.StartHudCommand.Execute(null); } catch (Exception e) { LogProvider.Log.Error(this, e); } }