using System.Text; namespace GoogleSheetsScheduleImport; public static class ImportTextEmitter { /// /// Builds text compatible with / Import.razor paste target. /// public static string Build( IReadOnlyList<(string SheetTitle, string SectionHeader, List Lines)> sheets) { var sb = new StringBuilder(); foreach (var (sheetTitle, sectionHeader, lines) in sheets) { sb.AppendLine($"# {sheetTitle}"); sb.AppendLine(sectionHeader); foreach (var line in lines.OrderBy(l => l.SourceRowStart).ThenBy(l => l.SourceCol)) sb.AppendLine(ImportLineFormatter.FormatOccurrenceLine(line)); sb.AppendLine(); } return sb.ToString().TrimEnd(); } }