private static void SaveSummary(Summary summary) { var solutionDir = GetSolutionDirectory(); if (solutionDir == null) { return; } var title = GetTitle(summary); if (title == null) { return; } var titleLine = $"## {title}"; var filePath = Path.Combine(solutionDir, "README.md"); var prefixLines = new List <string>(); var suffixLines = new List <string>(); if (File.Exists(filePath)) { var allLines = File.ReadAllLines(filePath); var foundSummary = false; var inOldSummary = false; foreach (var line in allLines) { if (!foundSummary) { if (line == titleLine) { foundSummary = true; inOldSummary = true; continue; } prefixLines.Add(line); continue; } if (inOldSummary) { if (!line.StartsWith("#")) { continue; } inOldSummary = false; } suffixLines.Add(line); } } using (var fileWriter = new StreamWriter(filePath, false, Encoding.UTF8)) { var logger = new StreamLogger(fileWriter); foreach (var line in prefixLines) { logger.WriteLine(line); } logger.WriteLineHeader(titleLine); logger.WriteLine(); MarkdownExporter.GitHub.ExportToLog(summary, logger); logger.WriteLine(); foreach (var line in suffixLines) { logger.WriteLine(line); } } }