Ejemplo n.º 1
0
 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));
 }
Ejemplo n.º 2
0
        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();
        }