public static Task WriteHealthCheckUIResponse(HttpContext httpContext, HealthReport report, Action <JsonSerializerSettings> jsonConfigurator) { var response = "{}"; if (report != null) { var settings = new JsonSerializerSettings() { ContractResolver = new CamelCasePropertyNamesContractResolver(), NullValueHandling = NullValueHandling.Ignore, ReferenceLoopHandling = ReferenceLoopHandling.Ignore, }; jsonConfigurator?.Invoke(settings); settings.Converters.Add(new StringEnumConverter()); httpContext.Response.ContentType = DEFAULT_CONTENT_TYPE; var uiReport = UIHealthReport .CreateFrom(report); response = JsonConvert.SerializeObject(uiReport, settings); } return(httpContext.Response.WriteAsync(response)); }
public static Task WriteHealthCheckUIResponse(HttpContext httpContext, HealthReport report, Action <JsonSerializerOptions> jsonConfigurator) { var response = "{}"; if (report != null) { var settings = new JsonSerializerOptions() { AllowTrailingCommas = true, PropertyNamingPolicy = JsonNamingPolicy.CamelCase, IgnoreNullValues = true, }; jsonConfigurator?.Invoke(settings); settings.Converters.Add(new JsonStringEnumConverter()); //for compatibility with older UI versions ( <3.0 ) we arrange //timepan serialization as s settings.Converters.Add(new TimeSpanConverter()); httpContext.Response.ContentType = DEFAULT_CONTENT_TYPE; var uiReport = UIHealthReport .CreateFrom(report); response = JsonSerializer.Serialize(uiReport, settings); } return(httpContext.Response.WriteAsync(response)); }
public static async Task WriteHealthCheckUIResponse(HttpContext httpContext, HealthReport report) { if (report != null) { httpContext.Response.ContentType = DEFAULT_CONTENT_TYPE; var uiReport = UIHealthReport .CreateFrom(report); using var responseStream = new MemoryStream(); await JsonSerializer.SerializeAsync(responseStream, uiReport, options.Value); await httpContext.Response.BodyWriter.WriteAsync(responseStream.ToArray()); } else { await httpContext.Response.BodyWriter.WriteAsync(emptyResponse); } }