static void Main(string[] args) { AppDomain.CurrentDomain.ProcessExit += OnProcessExit; AppDomain.CurrentDomain.UnhandledException += UnhandledException; var parser = new Parser(cfg => cfg.CaseInsensitiveEnumValues = true); parser .ParseArguments <Options>(args) .WithParsed(async options => { _serviceProvider = Bootstrapper.InitServices(); _logger = _serviceProvider.GetService <ILogger>(); _buildsWatcher = _serviceProvider.GetService <IWatchBuilds>(); _signalLightController = _serviceProvider.GetService <IControlSignalLight>(); _buildStatusLightController = _serviceProvider.GetService <IControlBuildStatusLight>(); if (_buildStatusLightController?.IsConnected == false) { _logger.Information("Signal light not connected! Continuing without device..."); } await Start(options); _logger.Information("Press any key to exit"); }); Console.ReadKey(); }
public LighthouseViewModel( Db db, ILogger logger, InMemorySink inMemmorySink, IWatchBuilds buildsWatcher, IControlBuildStatusLight buildStatusLightController, IControlSignalLight signalLightController) { _db = db; _logger = logger; _inMemorySink = inMemmorySink; _inMemorySink.Events.CollectionChanged += LogEventsCollectionChangedHandler; _buildsWatcher = buildsWatcher; _buildStatusLightController = buildStatusLightController; _signalLightController = signalLightController; IsRunning = false; ButtonText = "Start"; LighthouseSettings = GetSettings(); SetValidationRules(); StartStopLighthouse = ReactiveCommand.Create(OnStartStopClick, this.IsValid()); }