Add additional constructor to HealthReport (#24597)

Co-authored-by: Serg046 <serg046@outlook.com>
This commit is contained in:
Pranav K 2020-08-05 14:21:55 -07:00 committed by GitHub
parent 2831aaa08a
commit b8b438d945
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 16 additions and 2 deletions

View File

@ -17,9 +17,23 @@ namespace Microsoft.Extensions.Diagnostics.HealthChecks
/// <param name="entries">A <see cref="IReadOnlyDictionary{TKey, T}"/> containing the results from each health check.</param>
/// <param name="totalDuration">A value indicating the time the health check service took to execute.</param>
public HealthReport(IReadOnlyDictionary<string, HealthReportEntry> entries, TimeSpan totalDuration)
: this(
entries,
CalculateAggregateStatus(entries?.Values ?? throw new ArgumentNullException(nameof(entries))),
totalDuration)
{
}
/// <summary>
/// Create a new <see cref="HealthReport"/> from the specified results.
/// </summary>
/// <param name="entries">A <see cref="IReadOnlyDictionary{TKey, T}"/> containing the results from each health check.</param>
/// <param name="status">A <see cref="HealthStatus"/> representing the aggregate status of all the health checks.</param>
/// <param name="totalDuration">A value indicating the time the health check service took to execute.</param>
public HealthReport(IReadOnlyDictionary<string, HealthReportEntry> entries, HealthStatus status, TimeSpan totalDuration)
{
Entries = entries;
Status = CalculateAggregateStatus(entries.Values);
Status = status;
TotalDuration = totalDuration;
}
@ -43,7 +57,7 @@ namespace Microsoft.Extensions.Diagnostics.HealthChecks
/// </summary>
public TimeSpan TotalDuration { get; }
private HealthStatus CalculateAggregateStatus(IEnumerable<HealthReportEntry> entries)
private static HealthStatus CalculateAggregateStatus(IEnumerable<HealthReportEntry> entries)
{
// This is basically a Min() check, but we know the possible range, so we don't need to walk the whole list
var currentValue = HealthStatus.Healthy;