public static StructuredPositionalComparisonDifference FromPositionalComparisonDifference(PositionalComparisonDifference difference)
        {
            StructuredPositionalComparisonDifference structuredDifference = new StructuredPositionalComparisonDifference()
            {
                MatchDisposition               = difference.Disposition.ToString(),
                BaselineMasterStartPosition    = difference.BaselineDifference.BaselineStartPosition,
                BaselineMasterData             = difference.BaselineDifference.BaselineData,
                BaselineClassification         = difference.BaselineDifference.ClassificationString,
                BaselineSecondaryStartPosition = difference.BaselineDifference.SecondaryStartPosition,
                BaselineSecondaryData          = difference.BaselineDifference.SecondaryData,
                ComparisonStartPosition        = difference.CheckDifference.SecondaryStartPosition,
                ComparisonData = difference.CheckDifference.SecondaryData,
                ComparisonDataClassification = difference.CheckDifference.ClassificationString
            };

            return(structuredDifference);
        }
        public static StructuredFileComparisonDifference FromFileComparisonDifference(FileComparisonDifference differences)
        {
            StructuredFileComparisonDifference structuredDifference = new StructuredFileComparisonDifference()
            {
                Filename = differences.Filename,
                HasDifferenceResolutionError = differences.HasDifferenceResolutionError,
                HasInvalidDifferences        = differences.AnyInvalidDifferences,
                BaselineOnlyDifferences      = differences.BaselineOnlyDifferences,
                SecondaryOnlyDifferences     = differences.SecondaryOnlyDifferences,
                FullyMatchedDifferences      = differences.PositionallyMatchedDifferences.Where(d => d.Disposition == PositionalComparisonDisposition.Match)
                                               .Select(m => StructuredPositionalComparisonDifference.FromPositionalComparisonDifference(m)).ToList(),
                PositionallyMatchedDifferencesWithIssues = differences.PositionallyMatchedDifferences.Where(d => d.Disposition != PositionalComparisonDisposition.Match)
                                                           .Select(m => StructuredPositionalComparisonDifference.FromPositionalComparisonDifference(m)).ToList(),
                MissingBaselineFile  = differences.MissingBaselineFile,
                MissingSecondaryFile = differences.MissingSecondaryFile
            };

            return(structuredDifference);
        }