public string GenerateVerboseReport(DiffReportVerboseMode diffReportVerboseMode) { if (diffReportVerboseMode.HasFlag(DiffReportVerboseMode.Disabled)) { return("*** Verbose reporting mode is disabled ***"); } StringBuilder stringBuilder = new StringBuilder(1024); this.DumpKeys(stringBuilder, "Keys only present in ClusDb", this.KeysOnlyInClusdb, diffReportVerboseMode); this.DumpKeys(stringBuilder, "Keys only present in DxStore", this.KeysOnlyInDxStore, diffReportVerboseMode); this.DumpKeys(stringBuilder, "Keys present on both but properties not matching", this.KeysInBothButPropertiesMismatch, diffReportVerboseMode); if (diffReportVerboseMode.HasFlag(DiffReportVerboseMode.ShowMatchingKeys)) { this.DumpKeys(stringBuilder, "Keys present on both and properties matching", this.KeysInBothAndPropertiesMatch, diffReportVerboseMode); } return(stringBuilder.ToString()); }
public void DumpKeys(StringBuilder sb, string title, List <DataStoreMergedContainer.KeyEntry> keyEntries, DiffReportVerboseMode diffReportVerboseMode) { if (keyEntries != null && keyEntries.Count > 0) { sb.AppendLine(title); sb.AppendLine(new string('=', title.Length)); foreach (DataStoreMergedContainer.KeyEntry keyEntry in keyEntries) { keyEntry.DumpStats(sb); if (diffReportVerboseMode.HasFlag(DiffReportVerboseMode.ShowPropertyNames)) { keyEntry.DumpProperties(sb, diffReportVerboseMode.HasFlag(DiffReportVerboseMode.ShowPropertyValues)); } } sb.AppendLine(); } }