public HttpResponseMessage ExportResultsList(ResultsListReport report, string format, string preset) { var formatter = GetTableWriter(format); var exporter = resultsListExporter.GetExporter(preset); return(formatter.ExportTable(exporter(report))); }
public ExportedTable Export(ResultsListReport report) { var table = new ExportedTable(); table.Title = report.Metadata.Title; foreach (var athleteField in athleteFields) { table.Groups.Add("Athlete"); table.Headers.Add(athleteField.Title); } var fieldSets = new List <List <IExportedTableColumn <ResultsListReportEntrySubresult> > >(); foreach (var reportColumn in report.Metadata.Columns) { var fieldSet = GetFieldSet(reportColumn.PrimaryComponent != null, reportColumn.HasFinalPoints); if (fieldSet == null) { continue; } foreach (var field in fieldSet) { table.Groups.Add(reportColumn.Title); table.Headers.Add(field.Title); } fieldSets.Add(fieldSet); } foreach (var entry in report.Results) { var row = new List <string>(); foreach (var athleteField in athleteFields) { row.Add(athleteField.Extract(entry.Athlete)); } for (var i = 0; i < fieldSets.Count; i++) { var subresult = entry.Subresults[i]; var fieldSet = fieldSets[i]; foreach (var field in fieldSet) { row.Add(field.Extract(subresult)); } } table.Rows.Add(row); } return(table); }