private static string GetReport(ContentDataIntegrityReport report, string entityType, bool detailed) { var sb = new StringBuilder(); if (report.Ok) { sb.AppendLine($"<p>All {entityType} paths are valid</p>"); if (!detailed) { return(sb.ToString()); } } else { sb.AppendLine($"<p>{report.DetectedIssues.Count} invalid {entityType} paths detected.</p>"); } if (detailed && report.DetectedIssues.Count > 0) { sb.AppendLine("<ul>"); foreach (var issueGroup in report.DetectedIssues.GroupBy(x => x.Value.IssueType)) { var countByGroup = issueGroup.Count(); var fixedByGroup = issueGroup.Count(x => x.Value.Fixed); sb.AppendLine("<li>"); sb.AppendLine($"{countByGroup} issues of type <code>{issueGroup.Key}</code> ... {fixedByGroup} fixed"); sb.AppendLine("</li>"); } sb.AppendLine("</ul>"); } return(sb.ToString()); }
private HealthCheckStatus CheckPaths(string actionAlias, string actionName, string entityType, bool detailedReport, Func <ContentDataIntegrityReport> doCheck) { ContentDataIntegrityReport report = doCheck(); var actions = new List <HealthCheckAction>(); if (!report.Ok) { actions.Add(new HealthCheckAction(actionAlias, Id) { Name = actionName }); } return(new HealthCheckStatus(GetReport(report, entityType, detailedReport)) { ResultType = report.Ok ? StatusResultType.Success : StatusResultType.Error, Actions = actions, }); }