/// <summary> /// Create health check report. /// </summary> /// <param name="report">Report.</param> public static UIHealthCheckReport CreateFrom(HealthReport report) { var uiReport = new UIHealthCheckReport(new Dictionary <string, HealthCheckReportEntry>(), report.TotalDuration) { Status = report.Status, }; foreach (var item in report.Entries) { var entry = new HealthCheckReportEntry() { Data = item.Value.Data, Description = item.Value.Description, Duration = item.Value.Duration, Status = item.Value.Status }; if (item.Value.Exception != null) { var message = item.Value.Exception .Message; entry.Exception = message; entry.Description = item.Value.Description ?? message; } uiReport.Entries.Add(item.Key, entry); } return(uiReport); }
/// <summary> /// Add health report as json to HttpContext response. /// </summary> /// <param name="httpContext">Http context.</param> /// <param name="report">Report for health.</param> public static Task WriteHealthCheckResponseAsync(HttpContext httpContext, HealthReport report) { var response = "{}"; if (report != null) { var settings = new JsonSerializerSettings() { ContractResolver = new CamelCasePropertyNamesContractResolver(), NullValueHandling = NullValueHandling.Ignore, ReferenceLoopHandling = ReferenceLoopHandling.Ignore, }; settings.Converters.Add(new StringEnumConverter()); httpContext.Response.ContentType = DefaultContentType; var uiReport = UIHealthCheckReport .CreateFrom(report); response = JsonConvert.SerializeObject(uiReport, settings); } return(httpContext.Response.WriteAsync(response)); }