/// <summary> /// Start the Warden Manager using the underlying IWarden instance. /// </summary> /// <returns></returns> public async Task StartAsync() { _logger.Info("Starting Warden Manager."); _isManagerRunning = true; _isWardenRunning = true; await _warden.StartAsync(); while (_isManagerRunning) { await Task.Delay(1000); if (_isWardenRunning) { continue; } _logger.Trace("Warden has been stopped, awaiting for the start command..."); } }
private async Task InvokeAggregatedOnSuccessHooksAsync(IEnumerable <WatcherExecutionResult> results) { var validResults = results.Select(x => x.WardenCheckResult).Where(x => x.IsValid); _logger.Trace("Executing Aggregated Global Watcher hooks OnSuccess."); _configuration.AggregatedGlobalWatcherHooks.OnSuccess.Execute(validResults); _logger.Trace("Executing Aggregated Global Watcher hooks OnSuccessAsync."); await _configuration.AggregatedGlobalWatcherHooks.OnSuccessAsync.ExecuteAsync(validResults); }
/// <summary> /// Start the Warden. /// It will be running iterations in a loop (infinite by default but can be changed) and executing all of the configured hooks. /// </summary> /// <returns></returns> public async Task StartAsync() { _logger.Info($"Starting Warden: {Name}"); _running = true; _logger.Trace("Executing Warden hooks OnStart."); _configuration.Hooks.OnStart.Execute(); _logger.Trace("Executing Warden hooks OnStartAsync."); await _configuration.Hooks.OnStartAsync.ExecuteAsync(); await TryExecuteIterationsAsync(); }