public string CreateRelayVariationReport(VariationReportData variationReportData)
{
string courseName = variationReportData.CourseName;
RelayVariations relayVariations = variationReportData.RelayVariations;
InitReport();
WriteH1(string.Format(ReportText.RelayVariation_Title, courseName));
foreach (RelayVariations.BranchWarning branchWarning in variationReportData.RelayVariations.GetBranchWarnings()) {
string codesMore = string.Join(", ", branchWarning.codeMore);
string codesLess = string.Join(", ", branchWarning.codeLess);
WritePara(String.Format(ReportText.RelayVariation_BranchWarning, branchWarning.ControlCode, branchWarning.numMore, codesMore, branchWarning.numLess, codesLess));
}
string[] classes = new string[relayVariations.NumberOfLegs + 1];
classes[0] = "leftalign";
for (int i = 1; i < classes.Length; ++i)
classes[i] = "rightalign";
BeginTable("", classes.Length, classes);
// Write the header row.
BeginTableRow();
WriteTableHeaderCell("");
for (int i = 1; i <= relayVariations.NumberOfLegs; ++i)
WriteTableHeaderCell(string.Format(ReportText.RelayVariation_LegHeader, i));
EndTableRow();
// Write the relay variation rows. Table rule after every 3rd line
for (int teamNumber = 1; teamNumber <= relayVariations.NumberOfTeams; ++teamNumber) {
bool tablerule = (teamNumber % 3 == 0);
BeginTableRow();
WriteTableCell(tablerule ? "tablerule" : "", string.Format(ReportText.RelayVariation_TeamNumber, teamNumber));
for (int legNumber = 1; legNumber <= relayVariations.NumberOfLegs; ++legNumber)
WriteTableCell(tablerule ? "tablerule" : "", relayVariations.GetVariation(teamNumber, legNumber).CodeString);
EndTableRow();
}
EndTable();
return FinishReport();
}