示例#1
0
        public HttpResponseMessage ExportResultsList(ResultsListReport report, string format, string preset)
        {
            var formatter = GetTableWriter(format);
            var exporter  = resultsListExporter.GetExporter(preset);

            return(formatter.ExportTable(exporter(report)));
        }
示例#2
0
        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);
        }