| File: src\Components\Common\HealthChecksExtensions.cs | Web Access |
| Project: src\src\Components\Aspire.Microsoft.Extensions.Configuration.AzureAppConfiguration\Aspire.Microsoft.Extensions.Configuration.AzureAppConfiguration.csproj (Aspire.Microsoft.Extensions.Configuration.AzureAppConfiguration) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Diagnostics.HealthChecks; using Microsoft.Extensions.Hosting; namespace Aspire; internal static class HealthChecksExtensions { /// <summary> /// Adds a HealthCheckRegistration if one hasn't already been added to the builder. /// </summary> public static void TryAddHealthCheck(this IHostApplicationBuilder builder, HealthCheckRegistration healthCheckRegistration) { builder.TryAddHealthCheck(healthCheckRegistration.Name, hcBuilder => hcBuilder.Add(healthCheckRegistration)); } /// <summary> /// Invokes the <paramref name="addHealthCheck"/> action if the given <paramref name="name"/> hasn't already been added to the builder. /// </summary> public static void TryAddHealthCheck(this IHostApplicationBuilder builder, string name, Action<IHealthChecksBuilder> addHealthCheck) { var healthCheckKey = $"Aspire.HealthChecks.{name}"; if (!builder.Properties.ContainsKey(healthCheckKey)) { builder.Properties[healthCheckKey] = true; addHealthCheck(builder.Services.AddHealthChecks()); } } }