Esempio n. 1
0
        public SimConnectManagerViewModel(SimConnectManager simConnectManager)
        {
            _simConnectManager = simConnectManager;
            WeakEventManager <SimConnectManager, SimConnectManager.StateChangedEventArgs>
            .AddHandler(simConnectManager, nameof(SimConnectManager.StateChanged), OnSimConnectManager_StateChanged);

            _connectionStateText  = GetTextForState(_simConnectManager.ConnectionState);
            _connectionStateBrush = GetBrushForState(_simConnectManager.ConnectionState);
        }
Esempio n. 2
0
        protected override async void OnStartup(StartupEventArgs e)
        {
            base.DispatcherUnhandledException          += App_DispatcherUnhandledException;
            AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
            TaskScheduler.UnobservedTaskException      += TaskScheduler_UnobservedTaskException;

            await Host.StartAsync();

            SingleInstanceManager singleInstanceManager = Host.Services.GetRequiredService <SingleInstanceManager>();

            _logger.Value.LogInformation("Starting App.");

            if (!singleInstanceManager.IsFirstInstance)
            {
                _logger.Value.LogInformation("I am not the first instance. Shutting down ...");
                base.Shutdown(0);
                return;
            }

            base.ShutdownMode = ShutdownMode.OnExplicitShutdown;

            singleInstanceManager.SecondInstanceStarted += OnSecondInstanceStarted;

            bool createUi = true;

            foreach (string arg in e.Args)
            {
                switch (arg)
                {
                case "-tray":
                    createUi = false;
                    _logger.Value.LogInformation("Launch argument '{0}' found, don't create a UI.", arg);
                    break;

                default:
                    _logger.Value.LogWarning("Got invalid launch argument '{0}', ignoring.", arg);
                    break;
                }
            }

            _logger.Value.LogTrace("Setting up tray icon.");
            TrayIconManager trayIconManager = Host.Services.GetRequiredService <TrayIconManager>();

            trayIconManager.IconVisible    = true;
            trayIconManager.ItemExitClick += (sender, eventArgs) => _ = App.GracefulShutdownAsync();
            trayIconManager.DoubleClick   += (sender, eventArgs) => this.ShowCreateMainWindow();

            ProfileRepository profileRepository = Host.Services.GetRequiredService <ProfileRepository>();
            await profileRepository.LoadProfilesAsync();

            if (createUi)
            {
                _logger.Value.LogInformation("Creating MainWindow on startup.");
                this.ShowCreateMainWindow();
            }

            SimConnectManager scm = Host.Services.GetRequiredService <SimConnectManager>();
            await scm.StartAsync();

            _ = Host.Services.GetRequiredService <DeviceBindingManager>();
        }
 public ServicesManager(SimConnectManager manager)
 {
     myManager = manager;
 }