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();
}
}