85b362e8cd
- add the standalone HrynCo.Common solution and projects - include the shared common library source and tests - add package metadata and a repo gitignore
31 lines
912 B
C#
31 lines
912 B
C#
namespace HrynCo.Common.HealthChecks;
|
|
|
|
using HrynCo.Common.HealthChecks.Interfaces;
|
|
using Microsoft.Extensions.Diagnostics.HealthChecks;
|
|
|
|
public class CompositeHealthCheck : IHealthCheck
|
|
{
|
|
private readonly IConfigurationCheck _configCheck;
|
|
private readonly bool _configOnly;
|
|
private readonly IServiceHealthCheck _serviceCheck;
|
|
|
|
public CompositeHealthCheck(
|
|
IConfigurationCheck configCheck,
|
|
IServiceHealthCheck serviceCheck,
|
|
bool configOnly)
|
|
{
|
|
_configCheck = configCheck;
|
|
_serviceCheck = serviceCheck;
|
|
_configOnly = configOnly;
|
|
}
|
|
|
|
public Task<HealthCheckResult> CheckHealthAsync(
|
|
HealthCheckContext context,
|
|
CancellationToken cancellationToken)
|
|
{
|
|
return _configOnly
|
|
? _configCheck.CheckConfigurationAsync(cancellationToken)
|
|
: _serviceCheck.CheckHealthAsync(cancellationToken);
|
|
}
|
|
}
|