private void doRanking(int roundNumber) { DataRow[] foundRows = m_computedScoresTable.Select("", "Score_After_Round_" + roundNumber + " DESC, Tiebreaker_After_Round_" + roundNumber + " DESC"); int rank = 1; double previousValue = 0; double previousTiebreaker = 0; string rankColumnName = "Rank_After_Round_" + roundNumber; int count = 0; for (int i = 0; i < foundRows.Length; ++i) { DataRow dRow = foundRows[i]; if (LocalUtilities.hasWithdrawn(m_databaseFileName, getIntValue(dRow, "Team_Number"), roundNumber)) { dRow[rankColumnName] = -1; } else { double currentValue = getDoubleValue(dRow, "Score_After_Round_" + roundNumber); double currentTiebreaker = getDoubleValue(dRow, "Tiebreaker_After_Round_" + roundNumber); if (count > 0 && (currentValue != previousValue || currentTiebreaker != previousTiebreaker)) { rank = count + 1; } previousValue = currentValue; previousTiebreaker = currentTiebreaker; dRow[rankColumnName] = rank; count++; } } }
private void getTeamsScoreWise() { string sort = "Rank_After_Round_" + m_scoreRoundNumber + " ASC, Tiebreaker_After_Round_" + m_scoreRoundNumber + " DESC"; DataRow[] dRows = m_computedScoresTable.Select("", sort); int count = 0; foreach (DataRow dRow in dRows) { int team = AccessDatabaseUtilities.getIntValue(dRow, "Team_Number"); if (!LocalUtilities.hasWithdrawn(m_databaseFileName, team, m_drawRoundNumber)) { count++; } } m_teamNumber = new int[count + 1]; m_teamNumber[0] = 0; m_assigned = new bool[count + 1]; count = 1; foreach (DataRow dRow in dRows) { int team = AccessDatabaseUtilities.getIntValue(dRow, "Team_Number"); if (!LocalUtilities.hasWithdrawn(m_databaseFileName, team, m_drawRoundNumber)) { m_teamNumber[count] = team; m_assigned[count] = false; count++; } } }