public InitializingSplashWindowViewModel(IDiscoveryService discoveryService, IVisualComponentsFactory viewFactory, ConnectionService connectionService, UcsAutoReconnectService reconnectionService) { _connectionService = connectionService ?? throw new ArgumentNullException(nameof(connectionService)); _viewFactory = viewFactory ?? throw new ArgumentNullException(nameof(viewFactory)); _discoveryService = discoveryService ?? throw new ArgumentNullException(nameof(discoveryService)); _reconnectionService = reconnectionService ?? throw new ArgumentNullException(nameof(reconnectionService)); }
public override void OnFrameworkInitializationCompleted() { if (Desktop != null) { Desktop.Exit += onExit; } string dataDirectory; string logsDirectory; dataDirectory = Path.Combine( Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "UgCS", "telemetry-viewer"); ServiceProvider = initServices(dataDirectory); ServiceProvider.GetRequiredService <IDiscoveryService>().StartListen(); _viewFactory = ServiceProvider.GetService <IVisualComponentsFactory>(); try { if (!Directory.Exists(dataDirectory)) { Directory.CreateDirectory(dataDirectory); } logsDirectory = Path.Combine(dataDirectory, "logs"); if (!Directory.Exists(logsDirectory)) { Directory.CreateDirectory(logsDirectory); } initLog(logsDirectory); } catch (Exception err) { // Log still is not initialized, app can display error message only. ErrorWindow errWindow = _viewFactory.CreateWindow <ErrorWindow>(true); errWindow.DataContext = err; errWindow.Show(); TelemetryViewerApp.Current.SetMainWindow(errWindow); return; } AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; _log.Info($"Telemetry viewer {Version} started."); if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) { desktop.MainWindow = _viewFactory.CreateWindow <InitializingSplashWindow>(); ((IInitializingSplashWindowViewModel)desktop.MainWindow.DataContext).StartInitializing(); } base.OnFrameworkInitializationCompleted(); }