namespace Umbraco.Cms.Core.Models; public class ContentDataIntegrityReport { public ContentDataIntegrityReport(IReadOnlyDictionary detectedIssues) => DetectedIssues = detectedIssues; public enum IssueType { /// /// The item's level and path are inconsistent with it's parent's path and level /// InvalidPathAndLevelByParentId, /// /// The item's path doesn't contain all required parts /// InvalidPathEmpty, /// /// The item's path parts are inconsistent with it's level value /// InvalidPathLevelMismatch, /// /// The item's path does not end with it's own ID /// InvalidPathById, /// /// The item's path does not have it's parent Id as the 2nd last entry /// InvalidPathByParentId, } public bool Ok => DetectedIssues.Count == 0 || DetectedIssues.Count == DetectedIssues.Values.Count(x => x.Fixed); public IReadOnlyDictionary DetectedIssues { get; } public IReadOnlyDictionary FixedIssues => DetectedIssues.Where(x => x.Value.Fixed).ToDictionary(x => x.Key, x => x.Value); }