protected virtual HealthCheckResult BuildHealth(IHealthAggregator aggregator, IList <IHealthContributor> contributors, ISecurityContext securityContext, IOptionsMonitor <HealthCheckServiceOptions> svcOptions, IServiceProvider provider) { var registrationAggregator = _aggregator as IHealthRegistrationsAggregator; var result = registrationAggregator == null ? _aggregator.Aggregate(contributors) : registrationAggregator.Aggregate(contributors, svcOptions, provider); var showDetails = Options.ShowDetails; if (showDetails == ShowDetails.Never || (showDetails == ShowDetails.WhenAuthorized && !securityContext.HasClaim(Options.Claim))) { result = new HealthCheckResult { Status = result.Status, Description = result.Description }; } return(result); }
protected override HealthEndpointResponse BuildHealth(ISecurityContext securityContext) { var groupName = GetRequestedHealthGroup(securityContext); ICollection <HealthCheckRegistration> healthCheckRegistrations; IList <IHealthContributor> filteredContributors; if (!string.IsNullOrEmpty(groupName) && groupName != Options.Id) { filteredContributors = GetFilteredContributorList(groupName, _contributors); healthCheckRegistrations = GetFilteredHealthCheckServiceOptions(groupName, _serviceOptions); } else { filteredContributors = _contributors; healthCheckRegistrations = _serviceOptions.CurrentValue.Registrations; } var result = !(_aggregator is IHealthRegistrationsAggregator registrationAggregator) ? _aggregator.Aggregate(filteredContributors) : registrationAggregator.Aggregate(filteredContributors, healthCheckRegistrations, _provider); var response = new HealthEndpointResponse(result); var showDetails = Options.ShowDetails; if (showDetails == ShowDetails.Never || (showDetails == ShowDetails.WhenAuthorized && !securityContext.HasClaim(Options.Claim))) { response.Details = new Dictionary <string, object>(); } else { response.Groups = Options.Groups.Select(g => g.Key); } return(response); }