コード例 #1
0
ファイル: InstanceComparer.cs プロジェクト: dgm9704/Xoxo
        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));
        }
コード例 #2
0
ファイル: InstanceComparer.cs プロジェクト: dgm9704/Xoxo
        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);
        }
コード例 #3
0
ファイル: InstanceComparer.cs プロジェクト: dgm9704/Xoxo
 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);