using Microsoft.Extensions.Diagnostics.HealthChecks; using ScadaLink.ConfigurationDatabase; namespace ScadaLink.Host.Health; /// /// Health check that verifies database connectivity for Central nodes. /// public class DatabaseHealthCheck : IHealthCheck { private readonly ScadaLinkDbContext _dbContext; public DatabaseHealthCheck(ScadaLinkDbContext dbContext) { _dbContext = dbContext; } public async Task CheckHealthAsync( HealthCheckContext context, CancellationToken cancellationToken = default) { try { var canConnect = await _dbContext.Database.CanConnectAsync(cancellationToken); return canConnect ? HealthCheckResult.Healthy("Database connection is available.") : HealthCheckResult.Unhealthy("Database connection failed."); } catch (Exception ex) { return HealthCheckResult.Unhealthy("Database connection failed.", ex); } } }