using System.Collections.Generic; using System.Linq; namespace Umbraco.Core.Models { public class ContentDataIntegrityReport { public ContentDataIntegrityReport(IReadOnlyDictionary detectedIssues) { DetectedIssues = detectedIssues; } 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); 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, } } }