private void createDraw() { m_numberOfTeamsLeft = LocalUtilities.teamsLeft(m_databaseFileName, m_drawRoundNumber); m_numberOfTeamsOriginal = m_swissTeamEventInfo.NumberOfTeams; m_numberOfMatchesLeft = (m_numberOfTeamsLeft / 2) + m_numberOfTeamsLeft % 2; m_numberOfMatchesOriginal = (m_numberOfTeamsOriginal / 2) + m_numberOfTeamsOriginal % 2; string filter = "Round_Number = " + m_drawRoundNumber; string sort = "Table_Number ASC"; m_dataRows = m_scoresTable.Select(filter, sort); Debug.Assert(m_dataRows.Length == m_numberOfMatchesOriginal, "Number of matches for round number " + m_drawRoundNumber + " is " + m_dataRows.Length + " but it should be " + m_numberOfMatchesOriginal); assignLeftTeams(); assignWithDrawnTeams(); }
private void createRoundPage(int roundNumber) { printMessage("Creating Round Page for Round Number : " + roundNumber); m_prefix = "../"; StreamWriter sw = new StreamWriter(Path.Combine(m_webpagesRootDirectory, "rounds", "round" + roundNumber + "score.html")); sw.WriteLine("<html><head></head><body>"); int numberOfTeamsLeft = LocalUtilities.teamsLeft(m_databaseFileName, roundNumber); int numberOfMatchesLeft = (numberOfTeamsLeft / 2) + numberOfTeamsLeft % 2; DataRow[] foundRows = getTable(Constants.TableName.EventScores).Select("Round_Number = " + roundNumber + " AND Table_Number <= " + numberOfMatchesLeft, "Table_Number ASC"); DataRow dRow = (foundRows.Length > 0)?foundRows[0]:null; string headerTemplate = "<h2>Scores for Round " + roundNumber + "</h2>" + "<br/>[_commonPageHeader]"; sw.WriteLine(applyTemplate_(headerTemplate, dRow)); if (roundNumber > m_roundsCompleted) { if (roundNumber <= m_drawsCompleted) { sw.WriteLine(Utilities.makeTablePreamble_() + "<thead><tr>"); ArrayList tableHeader = new ArrayList(); tableHeader.Clear(); tableHeader.Add("Round " + roundNumber + " Draw"); sw.WriteLine(Utilities.makeTableHeader_(tableHeader) + "</tr></thead><tbody>"); sw.WriteLine("<tr><td>"); sw.WriteLine(createRoundTable(roundNumber, foundRows, false)); sw.WriteLine("</td></tr></tbody></table>"); sw.WriteLine("</tbody></table>"); } else { sw.WriteLine("<h2>No Draw or Score published yet!</h2>"); } } else { sw.WriteLine(Utilities.makeTablePreamble_() + "<thead><tr>"); ArrayList tableHeader = new ArrayList(); tableHeader.Clear(); tableHeader.Add("Round " + roundNumber + " Score"); tableHeader.Add("Cumulative Score and Ranking after Round " + roundNumber); sw.WriteLine(Utilities.makeTableHeader_(tableHeader) + "</tr></thead><tbody>"); sw.WriteLine("<tr><td>"); sw.WriteLine(createRoundTable(roundNumber, foundRows)); sw.WriteLine("</td><td>"); m_currentRound = roundNumber; Utilities.HTMLTableParameters parameters = new Utilities.HTMLTableParameters(""); parameters.columns.Add("Rank", "{Rank_After_Round_" + roundNumber + "}"); //parameters.columns.Add("Qualified", "Qualified"); parameters.columns.Add("No.", "[_makeTeamNumberLink]"); parameters.columns.Add("Name", "[_makeTeamNameLink]"); parameters.columns.Add("VPs", "{Score_After_Round_" + roundNumber + "}"); parameters.columns.Add("Tiebreaker Quotient", "{Tiebreaker_After_Round_" + roundNumber + "}"); parameters.sortCriteria = "Rank_After_Round_" + roundNumber + " ASC"; parameters.filterCriteria = "Rank_After_Round_" + roundNumber + " > -1"; parameters.headerTemplate = headerTemplate; parameters.tableName = Constants.TableName.EventComputedScores; sw.WriteLine(createTable_(parameters)); sw.WriteLine("</td></tr></tbody></table>"); sw.WriteLine("</tbody></table>"); } sw.WriteLine("</body></html>"); sw.Close(); reportProgress("Created Round " + roundNumber + " Score Page"); }