public static string Report(JTokenComparrisonResult comparrisonResult, IEnumerable <ComparisonResult> resultsToReport, ReporterSettings settings) { if (comparrisonResult != null) { return(comparrisonResult.Match( x => ReportObject(x, resultsToReport, settings).TrimEnd(Environment.NewLine.ToCharArray()), x => ReportArray(x, resultsToReport, settings).TrimEnd(Environment.NewLine.ToCharArray()), x => ReportProperty(x, resultsToReport, settings).TrimEnd(Environment.NewLine.ToCharArray()), x => ReportValue(x, resultsToReport, settings).TrimEnd(Environment.NewLine.ToCharArray()))); } else { return(""); } }
private static string ComparrisonResultToFriendlyName(JTokenComparrisonResult result, ReporterSettings settings) { switch (result.ComparrisonResult) { case ComparisonResult.Filtered: case ComparisonResult.DifferentTypes: case ComparisonResult.Different: case ComparisonResult.Identical: return(result.ComparrisonResult.ToString()); case ComparisonResult.MissingInSource1: return($"Missing in {settings.Source1Name}"); case ComparisonResult.MissingInSource2: return($"Missing in {settings.Source2Name}"); default: throw new ArgumentOutOfRangeException("ComparisonResult"); } }
private static string ReportElement(JTokenComparrisonResult result, ReporterSettings settings) { return($"{result.Path}-key:{result.Key}-{ComparrisonResultToFriendlyName(result, settings)}-{result.Type}"); }