public string CreateCourseSummaryReport(EventDB eventDB)
{
InitReport();
// Header.
WriteH1(string.Format(ReportText.CourseSummary_Title, QueryEvent.GetEventTitle(eventDB, " ")));
// Table of all courses.
BeginTable("", 4, "leftalign", "rightalign", "rightalign", "rightalign");
WriteTableHeaderRow(ReportText.ColumnHeader_Course, ReportText.ColumnHeader_Controls, ReportText.ColumnHeader_Length, ReportText.ColumnHeader_Climb);
// Enumerate all courses.
Id<Course>[] courseIds = QueryEvent.SortedCourseIds(eventDB);
// Write row for each course.
foreach (Id<Course> courseId in courseIds) {
BeginTableRow();
CourseView courseView = CourseView.CreateViewingCourseView(eventDB, new CourseDesignator(courseId));
// Course name
WriteTableCell(courseView.CourseName);
// # of normal controls
WriteTableCell(Util.RangeIfNeeded(courseView.MinNormalControls, courseView.MaxNormalControls));
// Length (empty for score course)
if (courseView.Kind == CourseView.CourseViewKind.Score)
WriteTableCell("");
else
WriteTableCell(Util.GetLengthInKm(courseView.MinTotalLength, courseView.MaxTotalLength, 1));
// Climb (empty for score course or no climb defined)
if (courseView.Kind == CourseView.CourseViewKind.Score || courseView.TotalClimb < 0)
WriteTableCell("");
else
WriteTableCell(Convert.ToString(Math.Round(courseView.TotalClimb / 5, MidpointRounding.AwayFromZero) * 5.0) + " m");
EndTableRow();
}
EndTable();
return FinishReport();
}