private async Task AllCheck(MonitorDataProvider dbContext, HttpService http) { foreach (var item in dbContext.MonitorRules) { _logger.LogInformation($"Checking status for: {item.ProjectName}"); try { var content = await http.Get(new AiurUrl(item.CheckAddress)); var success = content.Contains(item.ExpectedContent); if (!success) { var errorMessage = $"Status check for {item.ProjectName} did not pass. Expected: {item.ExpectedContent}. Got content: {content}"; _logger.LogError(errorMessage); } item.LastHealthStatus = success; item.LastCheckTime = DateTime.UtcNow; } catch (Exception e) { var errorMessage = $"Status check for {item.ProjectName} did not pass. Expected: {item.ExpectedContent}. Got error: {e.Message}"; _logger.LogError(errorMessage); item.LastHealthStatus = false; item.LastCheckTime = DateTime.UtcNow; } } }
public HomeController(MonitorDataProvider dbContext) { dataProvider = dbContext; }