public static ComparisonReport Report(Instance a, Instance b, ComparisonTypes comparisonTypes, BasicComparisons basicComparisons) { var messages = new List <string>(); if (comparisonTypes.HasFlag(ComparisonTypes.Basic)) { messages.AddRange(BasicComparison(a, b, basicComparisons)); } messages.AddRange(ComparisonMethods. Where(c => comparisonTypes.HasFlag(c.Key)). SelectMany(c => c.Value(a, b))); return(new ComparisonReport(!messages.Any(), messages)); }
public static ComparisonReportObjects ReportObjects(Instance a, Instance b, ComparisonTypes comparisons, BasicComparisons basicSelection) { var report = new ComparisonReportObjects(); if (comparisons.HasFlag(ComparisonTypes.Basic)) { report.Basics = BasicComparison(a, b, basicSelection).ToList(); } if (comparisons.HasFlag(ComparisonTypes.Contexts)) { report.Contexts = ScenarioComparison(a, b); } if (comparisons.HasFlag(ComparisonTypes.Facts)) { report.Facts = FactComparison(a, b); } if (comparisons.HasFlag(ComparisonTypes.DomainNamespaces)) { report.DomainNamespaces = DomainNamespaceComparison(a, b); } if (comparisons.HasFlag(ComparisonTypes.Units)) { report.Units = UnitComparison(a, b); } if (comparisons.HasFlag(ComparisonTypes.Entity)) { report.Entities = EntityComparison(a, b); } if (comparisons.HasFlag(ComparisonTypes.Entity)) { report.Periods = PeriodComparison(a, b); } if (comparisons.HasFlag(ComparisonTypes.TaxonomyVersion)) { report.TaxonomyVersions = TaxonomyVersionComparison(a, b); } if (comparisons.HasFlag(ComparisonTypes.SchemaReference)) { report.SchemaReferences = SchemaReferenceComparison(a, b); } if (comparisons.HasFlag(ComparisonTypes.FilingIndicators)) { report.FilingIndicators = FilingIndicatorComparison(a, b); } report.Result = GetResultForReport(report); return(report); }
static IEnumerable <string> BasicComparison(Instance a, Instance b, BasicComparisons selection) => SimpleCheckMethods. Where(c => selection.HasFlag(c.Key)). Where(c => !c.Value.Item2(a, b)). Select(c => c.Value.Item1);