PurplePen.Reports.CreateRelayVariationReport C# (CSharp) Method

CreateRelayVariationReport() public method

public CreateRelayVariationReport ( VariationReportData variationReportData ) : string
variationReportData VariationReportData
return string
        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();
        }