Пример #1
0
        private static string RenderRows(Template rowTemplate, List <Line> lines, string indentBegin, string indentEnd)
        {
            string output = "";

            foreach (var line in lines)
            {
                string left  = XmlEscape(line.Left);
                string right = XmlEscape(line.Right);
                if (line.EntryType == EntryType.Changed)
                {
                    List <StringDiff> streaks = StringDiff.FindDifferences(left, right);
                    left  = RenderStreaks(streaks, StreakType.Unchanged, StreakType.Removed);
                    right = RenderStreaks(streaks, StreakType.Unchanged, StreakType.Added);
                }

                output += rowTemplate.Render(new
                {
                    LineType    = line.EntryType.ToString(),
                    LineTypeLc  = line.EntryType.ToString().ToLower(),
                    IndentBegin = indentBegin,
                    IndentEnd   = indentEnd,
                    Left        = left,
                    Right       = right,
                });
            }
            return(output);
        }