예제 #1
0
        private string getTeamLink(Object teamNumberObject, bool showNumber, bool showName)
        {
            string result = "";

            if (teamNumberObject == DBNull.Value)
            {
                return("-");
            }
            int       teamNumber = (int)teamNumberObject;
            DataTable table      = AccessDatabaseUtilities.getDataTable(m_databaseFileName, Constants.TableName.KnockoutTeams);

            DataRow[] dRows = table.Select("Team_Number = " + teamNumber);
            Debug.Assert(dRows.Length == 1);
            DataRow dRow = dRows[0];
            string  originalEventName = AccessDatabaseUtilities.getStringValue(dRow, "Original_Event_Name");

            if (string.IsNullOrWhiteSpace(originalEventName))
            {
                result = "<span title='" + dRow["Member_Names"] + "' >" + (showNumber ? dRow["Team_Number"] + " " : "") + (showName ? dRow["Team_Name"] : "") + "</span>";
            }
            else
            {
                int originalTeamNumber = AccessDatabaseUtilities.getIntValue(dRow, "Original_Team_Number");
                //string webpagesRootDirectory = Path.Combine("..", "..", Constants.WebpagesFolderName, Utilities.makeIdentifier_(originalEventName));
                //string link = Path.Combine(webpagesRootDirectory, "teams", "team" + originalTeamNumber + "score.html");
                string webpagesRootDirectory = "../" + Utilities.makeIdentifier_(originalEventName);
                string link = webpagesRootDirectory + "/teams/team" + originalTeamNumber + "score.html";
                result = "<a href='" + link + "' title='" + dRow["Member_Names"] + "'>" + (showNumber ? dRow["Team_Number"] + " " : "") + (showName ? dRow["Team_Name"] : "") + "</a>";
            }
            return(result);
        }
        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++;
                }
            }
        }
        private void populateKnockoutTables()
        {
            DataTable table = AccessDatabaseUtilities.getDataTable(m_databaseFileName, Constants.TableName.KnockoutTeams);
            int       count = 0;

            foreach (string eventName in m_selectedEventNames)
            {
                for (int i = 0; i < m_dataViews[eventName].Count; ++i)
                {
                    if (m_selectedTeams[m_currentTabNumber][eventName][i])
                    {
                        DataRow dRow = m_dataViews[eventName][i].Row;
                        int     originalTeamNumber = AccessDatabaseUtilities.getIntValue(dRow, "Team_Number");
                        string  teamName           = AccessDatabaseUtilities.getStringValue(dRow, "Team_Name");
                        string  memberNames        = AccessDatabaseUtilities.getStringValue(dRow, "Member_Names");
                        int     teamNumber         = count + 1;
                        DataRow newRow             = table.Rows[count];
                        newRow["Team_Number"]          = teamNumber;
                        newRow["Team_Name"]            = teamName;
                        newRow["Member_Names"]         = memberNames;
                        newRow["Original_Team_Number"] = originalTeamNumber;
                        newRow["Original_Event_Name"]  = eventName;
                        count++;
                    }
                }
            }
            AccessDatabaseUtilities.saveTableToDatabase(m_databaseFileName, Constants.TableName.KnockoutTeams);
        }
예제 #4
0
        private void knockoutScoresDataGridView_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            DataGridView dgv              = sender as DataGridView;
            string       columnName       = dgv.Columns[e.ColumnIndex].Name;
            int          roundNumber      = knockoutRoundsCombobox.SelectedIndex + 1;
            DataTable    sessionsTable    = AccessDatabaseUtilities.getDataTable(m_databaseFileName, Constants.TableName.KnockoutSessions);
            DataRow      dRow             = sessionsTable.Rows.Find(roundNumber);
            int          numberOfSessions = (int)dRow["Number_Of_Sessions"];

            if (columnName.Contains("Session") || columnName == "Carryover")
            {
                double total = 0;
                Object value = dgv.Rows[e.RowIndex].Cells["Carryover"].Value;
                total += (value == DBNull.Value) ? 0 : (double)value;
                for (int i = 1; i <= numberOfSessions; ++i)
                {
                    value  = dgv.Rows[e.RowIndex].Cells["Session_" + i + "_Score"].Value;
                    total += (value == DBNull.Value) ? 0 : (double)value;
                }
                dgv.Rows[e.RowIndex].Cells["Total"].Value = total;
            }
            else if (columnName == "Team_Number")
            {
                dgv.Rows[e.RowIndex].Cells["Team_Name"].Value = LocalUtilities.getTeamName(m_databaseFileName, Constants.TableName.KnockoutTeams, (int)dgv.Rows[e.RowIndex].Cells["Team_Number"].Value);
            }
        }
예제 #5
0
        public String _commonPageHeader(DataRow dRow)
        {
            DateTime indianTime = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, Utilities.INDIAN_ZONE);
            String   result     = "Page Updated on " + indianTime.ToString() + " IST<br/>";

            result += "<a href='" + m_prefix + "leaderboard/index.html'>Round Robin Leaderboard</a>";
            result += " | <a href='" + m_prefix + "names/index.html'>Team Compositions</a><br/>";
            result += "Team Scores : ";
            DataTable table = getTable(Constants.TableName.EventNames);

            foreach (DataRow dTeamRow in table.Select("", "Team_Number ASC"))
            {
                int i = AccessDatabaseUtilities.getIntValue(dTeamRow, "Team_Number");

                //for (int i = 1; i <= m_numberOfTeams; ++i)
                //{

                result += (i == 1 ? "" : " | ") + "<a href='" + m_prefix + "teams" + "/team" + i + "score.html' title = '" + getTeamMemberNames(i) + "'>" + i + "</a>";
            }
            result += "<br/>";
            result += "Round Scores : ";
            for (int i = 1; i <= m_numberOfRounds; ++i)
            {
                result += (i == 1 ? "" : " | ") + "<a href='" + m_prefix + "rounds" + "/round" + i + "score.html'>" + i + "</a>";
            }
            return(result);
        }
        private void loadTeams(string eventName)
        {
            DataTable table = AccessDatabaseUtilities.loadDatabaseToTable(Constants.getEventScoresFileName(eventName), Constants.TableName.EventNames);

            m_dataViews[eventName]      = new DataView(table);
            m_dataViews[eventName].Sort = "Rank ASC, Tiebreaker_Score ASC";
        }
        public void updateSessions()
        {
            DataTable table = AccessDatabaseUtilities.getDataTable(m_databaseFileName, Constants.TableName.KnockoutSessions);

            foreach (DataRow dRow in table.Rows)
            {
                List <string> removeColumns    = null;
                int           roundNumber      = (int)dRow["Round_Number"];
                int           numberOfSessions = (int)dRow["Number_Of_Sessions"];
                if (numberOfSessions > m_oldNumberOfSessions[roundNumber])
                {
                    List <DatabaseField> fields = new List <DatabaseField>();
                    for (int i = m_oldNumberOfSessions[roundNumber] + 1; i <= numberOfSessions; ++i)
                    {
                        fields.Add(new DatabaseField("Session_" + i + "_Score", "NUMBER"));
                    }
                    AccessDatabaseUtilities.addColumn(m_databaseFileName, Constants.TableName.KnockoutScores + "_" + roundNumber, fields);
                }
                else if (m_oldNumberOfSessions[roundNumber] > numberOfSessions)
                {
                    removeColumns = new List <string>();
                    List <DatabaseField> fields = new List <DatabaseField>();
                    for (int i = numberOfSessions + 1; i <= m_oldNumberOfSessions[roundNumber]; ++i)
                    {
                        fields.Add(new DatabaseField("Session_" + i + "_Score", "NUMBER"));
                        removeColumns.Add("Session_" + i + "_Score");
                    }
                    AccessDatabaseUtilities.dropColumn(m_databaseFileName, Constants.TableName.KnockoutScores + "_" + roundNumber, fields);
                }
                m_oldNumberOfSessions[roundNumber] = numberOfSessions;
                AccessDatabaseUtilities.loadDatabaseToTable(m_databaseFileName, Constants.TableName.KnockoutScores + "_" + roundNumber, "", removeColumns);
            }
            AccessDatabaseUtilities.saveTableToDatabase(m_databaseFileName, Constants.TableName.KnockoutSessions);
        }
예제 #8
0
 public WithdrawTeams(string databaseFileName)
 {
     m_databaseFileName = databaseFileName;
     m_tableName        = Constants.TableName.EventNames;
     InitializeComponent();
     withdrawTeamsDataGridView.DataSource = AccessDatabaseUtilities.loadDatabaseToTable(m_databaseFileName, m_tableName);
 }
예제 #9
0
        private string getTeamMemberNames(int teamNumber)
        {
            DataTable table = AccessDatabaseUtilities.getDataTable(m_databaseFileName, Constants.TableName.EventNames);
            DataRow   dRow  = table.Rows.Find(teamNumber);

            return("" + dRow["Member_Names"]);
        }
        private static void populateNamesTable()
        {
            DataTable table = AccessDatabaseUtilities.getDataTable(m_databaseFileName, Constants.TableName.EventNames);
            DataTable computedScoresTable = AccessDatabaseUtilities.getDataTable(m_databaseFileName, Constants.TableName.EventComputedScores);
            DataTable existingTable       = m_dataSet.Tables["Names"];

            foreach (DataRow existingRow in existingTable.Rows)
            {
                DataRow dRow = table.NewRow();
                dRow["Team_Number"]  = AccessDatabaseUtilities.getIntValue(existingRow, "Number");
                dRow["Team_Name"]    = getStringValue(existingRow, "Team Name");
                dRow["Member_Names"] = getStringValue(existingRow, "Member 1 Name") + ", " +
                                       getStringValue(existingRow, "Member 2 Name") + ", " +
                                       getStringValue(existingRow, "Member 3 Name") + ", " +
                                       getStringValue(existingRow, "Member 4 Name") + ", " +
                                       getStringValue(existingRow, "Member 5 Name") + ", " +
                                       getStringValue(existingRow, "Member 6 Name");
                table.Rows.Add(dRow);
                dRow = computedScoresTable.NewRow();
                dRow["Team_Number"] = AccessDatabaseUtilities.getIntValue(existingRow, "Number");
                computedScoresTable.Rows.Add(dRow);
            }
            AccessDatabaseUtilities.saveTableToDatabase(m_databaseFileName, Constants.TableName.EventNames);
            AccessDatabaseUtilities.saveTableToDatabase(m_databaseFileName, Constants.TableName.EventComputedScores);
        }
 private static void createSwissLeagueDatabases(string eventName, int numberOfTeams, int numberOfRounds)
 {
     AccessDatabaseUtilities.createDatabase(m_databaseFileName);
     createSwissLeagueTeamsTable();
     createSwissLeagueScoresTable();
     createSwissLeagueComputedScoresTable(numberOfRounds);
 }
예제 #12
0
        private void writeKnockoutPage(string fileName)
        {
            DataTable table = AccessDatabaseUtilities.getDataTable(m_databaseFileName, Constants.TableName.KnockoutSessions);

            DataRow[] dRows = table.Select("", "Round_Number ASC");
            if (dRows.Length < 1)
            {
                return;
            }
            StreamWriter sw = new StreamWriter(fileName);

            sw.WriteLine("<html><head></head><body>");
            string title          = "<h2>Knockout Scores</h2>";
            string headerTemplate = title + "<br/>[_commonPageHeader]";

            sw.WriteLine(applyTemplate_(headerTemplate, null));
            bool scoresAvailable = false;

            foreach (DataRow dRow in dRows)
            {
                string html = getKnockoutRoundTable(dRow);
                if (!string.IsNullOrWhiteSpace(html))
                {
                    scoresAvailable = true;
                    sw.Write(html + Environment.NewLine);
                    sw.Write("<hr/>" + Environment.NewLine);
                }
            }
            if (!scoresAvailable)
            {
                sw.WriteLine("<h1>No Scores Available Yet!</h1>");
            }
            sw.WriteLine("</body></html>");
            sw.Close();
        }
예제 #13
0
        private void checkRoundCompletion(int roundNumber, int numberOfSessions)
        {
            DataTable     sessionsTable   = AccessDatabaseUtilities.getDataTable(m_databaseFileName, Constants.TableName.KnockoutSessions);
            List <string> skipColumnNames = new List <string>();

            skipColumnNames.Add("Carryover");
            DataTable table = AccessDatabaseUtilities.getDataTable(m_databaseFileName, Constants.TableName.KnockoutScores + "_" + roundNumber);

            if (Utilities.HasNull(table, skipColumnNames))
            {
                return;
            }
            roundNumber--;
            if (roundNumber < 1)
            {
                return;
            }
            table = AccessDatabaseUtilities.getDataTable(m_databaseFileName, Constants.TableName.KnockoutScores + "_" + roundNumber);
            DataRow dRow = sessionsTable.Rows.Find(roundNumber);

            numberOfSessions = (int)dRow["Number_Of_Sessions"];
            for (int i = 1; i <= numberOfSessions; ++i)
            {
                if (!Utilities.AllNull(table, "Session_" + i + "_Score"))
                {
                    return;
                }
            }
            setUpMatches(roundNumber);
        }
예제 #14
0
        private void setUpMatches(int roundNumber)
        {
            DataTable table = AccessDatabaseUtilities.getDataTable(m_databaseFileName, Constants.TableName.KnockoutScores + "_" + roundNumber);
            // Overwrite existing team numbers to avoid unique value errors
            int count = -1;

            foreach (DataRow dRow in table.Rows)
            {
                dRow["Team_Number"] = count--;
            }
            AccessDatabaseUtilities.saveTableToDatabase(m_databaseFileName, Constants.TableName.KnockoutScores + "_" + roundNumber);
            DataTable previousTable = AccessDatabaseUtilities.getDataTable(m_databaseFileName, Constants.TableName.KnockoutScores + "_" + (roundNumber + 1));
            int       matchNumber   = 1;

            foreach (DataRow dRow in table.Rows)
            {
                DataRow[] dRows     = previousTable.Select("Match_Number = " + matchNumber);
                DataRow   winnerRow = findWinner(dRows);
                dRow["Team_Number"] = AccessDatabaseUtilities.getIntValue(winnerRow, "Team_Number");
                dRow["Team_Name"]   = AccessDatabaseUtilities.getStringValue(winnerRow, "Team_Name");
                matchNumber++;
            }
            AccessDatabaseUtilities.saveTableToDatabase(m_databaseFileName, Constants.TableName.KnockoutScores + "_" + roundNumber);
            knockoutRoundsCombobox.SelectedIndex = roundNumber - 1;
        }
        private static double getDoubleValue(DataRow dRow, string columnName)
        {
            string value    = AccessDatabaseUtilities.getStringValue(dRow, columnName);
            string newValue = value.Replace("\"", "");

            return(string.IsNullOrWhiteSpace(newValue) ? 0 : double.Parse(newValue));
        }
예제 #16
0
        public static bool hasWithdrawn(string databaseFileName, int teamNumber, int roundNumber)
        {
            DataTable table = AccessDatabaseUtilities.getDataTable(databaseFileName, Constants.TableName.EventNames);

            DataRow[] foundRows = table.Select("Team_Number=" + teamNumber + " AND NOT Withdraw_Round is null AND WithDraw_Round <= " + roundNumber, "");
            return(foundRows.Length > 0);
        }
예제 #17
0
        public static int teamsLeft(string databaseFileName, int roundNumber)
        {
            DataTable table = AccessDatabaseUtilities.getDataTable(databaseFileName, Constants.TableName.EventNames);

            DataRow[] rows = table.Select("Withdraw_Round is null OR WithDraw_Round > " + roundNumber);
            return(rows.Length);
        }
예제 #18
0
        public static string getTeamName(string databaseFileName, string tableName, int teamNumber)
        {
            DataTable table = AccessDatabaseUtilities.getDataTable(databaseFileName, tableName);

            DataRow[] dRows = table.Select("Team_Number = " + teamNumber);
            return((dRows.Length > 0) ? (string)dRows[0]["Team_Name"] : "Unknown");
        }
 private void assignLeftTeams()
 {
     if (!createMatch(m_drawRoundNumber, 1, m_numberOfMatchesLeft, m_assigned, m_teamNumber))
     {
         MessageBox.Show("Unable to generate random draw for round : " + m_drawRoundNumber + Environment.NewLine + "Please generate by hand and enter directly.", "Random Draw Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
         AccessDatabaseUtilities.loadDatabaseToTable(m_databaseFileName, Constants.TableName.EventScores);
     }
 }
예제 #20
0
 private void reloadNumberOfSessionsButton_Click(object sender, EventArgs e)
 {
     if (Utilities.confirmReload(Constants.TableName.KnockoutSessions))
     {
         AccessDatabaseUtilities.loadDatabaseToTable(m_databaseFileName, Constants.TableName.KnockoutSessions);
         Utilities.showBalloonNotification("Reload Completed", Constants.TableName.KnockoutSessions + " reloaded from database successfully");
     }
 }
예제 #21
0
 private void reloadKnockoutScoresButton_Click(object sender, EventArgs e)
 {
     if (Utilities.confirmReload("Knockout Scores"))
     {
         int roundNumber = knockoutRoundsCombobox.SelectedIndex + 1;
         AccessDatabaseUtilities.loadDatabaseToTable(m_databaseFileName, Constants.TableName.KnockoutScores + "_" + roundNumber);
     }
 }
예제 #22
0
 private void reloadWithdrawTeamsButton_Click(object sender, EventArgs e)
 {
     if (Utilities.confirmReload(Constants.TableName.EventNames))
     {
         AccessDatabaseUtilities.loadDatabaseToTable(m_databaseFileName, m_tableName);
         Utilities.showBalloonNotification("Reload Completed", m_tableName + " reloaded from database successfully");
     }
 }
예제 #23
0
        private void knockoutRoundsCombobox_SelectedIndexChanged(object sender, EventArgs e)
        {
            DataTable table = AccessDatabaseUtilities.getDataTable(m_databaseFileName, Constants.TableName.KnockoutScores + "_" + (knockoutRoundsCombobox.SelectedIndex + 1));
            DataView  dView = new DataView(table);

            dView.RowFilter = "";
            dView.Sort      = "Match_Number ASC";
            knockoutScoresDataGridView.DataSource = dView;
        }
예제 #24
0
 private void reloadScoresButton_Click(object sender, EventArgs e)
 {
     if (Utilities.confirmReload(Constants.KnockoutScoresFileName))
     {
         int roundNumber = knockoutRoundsCombobox.SelectedIndex + 1;
         AccessDatabaseUtilities.loadDatabaseToTable(m_databaseFileName, Constants.TableName.KnockoutScores + "_" + roundNumber);
         Utilities.showBalloonNotification("Reloaded " + Constants.KnockoutScoresFileName + " from database successfully", "Reload Done");
     }
 }
예제 #25
0
        private string createMatchRows(DataRow[] dRows, int numberOfSessions, int matchNumber, bool addExtraRowInFront = false)
        {
            string html = "";

            if (addExtraRowInFront)
            {
                html += addEmptyRows(numberOfSessions);
            }
            for (int j = 0; j < 2; ++j)
            {
                html += ("<tr>");
                int    otherRow   = 1 - j;
                int    teamNumber = (int)dRows[j]["Team_Number"];
                double total      = (double)dRows[j]["Total"];
                double otherTotal = (double)dRows[otherRow]["Total"];
                if (j == 0)
                {
                    html += Utilities.makeTableCell_("" + matchNumber, 1, false, 2);
                }
                int rowIndex = (total > otherTotal) ? 0 : 1;
                if (total > otherTotal)
                {
                    html += Utilities.makeTableCell_("<b>" + getTeamLink(teamNumber, true, true) + "</b>", rowIndex);
                }
                else
                {
                    html += Utilities.makeTableCell_(getTeamLink(teamNumber, true, true), rowIndex);
                }
                html += Utilities.makeTableCell_("" + AccessDatabaseUtilities.getDoubleValue(dRows[j], "Carryover"), rowIndex);
                for (int k = 1; k <= numberOfSessions; ++k)
                {
                    string columnName        = "Session_" + k + "_Score";
                    double sessionScore      = AccessDatabaseUtilities.getDoubleValue(dRows[j], columnName);
                    double otherSessionScore = AccessDatabaseUtilities.getDoubleValue(dRows[otherRow], columnName);
                    if (sessionScore > otherSessionScore)
                    {
                        html += Utilities.makeTableCell_("<b>" + sessionScore + "</b>", rowIndex);
                    }
                    else
                    {
                        html += Utilities.makeTableCell_("" + sessionScore, rowIndex);
                    }
                }
                if (total > otherTotal)
                {
                    html += Utilities.makeTableCell_("<b>" + total + "</b>", rowIndex);
                }
                else
                {
                    html += Utilities.makeTableCell_("" + total, rowIndex);
                }
                html += ("</tr>" + Environment.NewLine);
            }
            return(html);
        }
예제 #26
0
 private void initialize()
 {
     m_tourneyInfoFileName   = Constants.getCurrentTourneyInformationFileName();
     m_tourneyEventsFileName = Constants.getCurrentTourneyEventsFileName();
     m_tourneyName           = NiniUtilities.getStringValue(m_tourneyInfoFileName, Constants.TourneyNameFieldName);
     this.Text     = "Tourney Name : " + m_tourneyName;
     m_tourneyInfo = new TourneyInfo(Constants.getCurrentTourneyInformationFileName(), false);
     this.tourneyInfoPropertyGrid.SelectedObject = m_tourneyInfo;
     m_eventsTable = AccessDatabaseUtilities.loadDatabaseToTable(m_tourneyEventsFileName, Constants.TableName.TourneyEvents);
     loadEvents();
 }
예제 #27
0
        private void saveScoresButton_Click(object sender, EventArgs e)
        {
            int roundNumber = knockoutRoundsCombobox.SelectedIndex + 1;

            AccessDatabaseUtilities.saveTableToDatabase(m_databaseFileName, Constants.TableName.KnockoutScores + "_" + roundNumber);
            Utilities.showBalloonNotification("Saved " + Constants.KnockoutScoresFileName + " to database successfully", "Save Done");
            KnockoutTeamsDatabaseToWebpages ktdw = new KnockoutTeamsDatabaseToWebpages(m_eventName, m_databaseFileName, Constants.getEventWebpagesFolder(m_eventName));

            ktdw.createWebpages_();
            showUrl();
        }
예제 #28
0
        private void saveKnockoutScoresButton_Click(object sender, EventArgs e)
        {
            int roundNumber = knockoutRoundsCombobox.SelectedIndex + 1;

            AccessDatabaseUtilities.saveTableToDatabase(m_databaseFileName, Constants.TableName.KnockoutScores + "_" + roundNumber);
            DataTable sessionsTable    = AccessDatabaseUtilities.getDataTable(m_databaseFileName, Constants.TableName.KnockoutSessions);
            DataRow   dRow             = sessionsTable.Rows.Find(roundNumber);
            int       numberOfSessions = (int)dRow["Number_Of_Sessions"];

            checkRoundCompletion(roundNumber, numberOfSessions);
        }
        private void populateSwissLeagueTables(int numberOfRounds, int numberOfTeams)
        {
            DataTable table = AccessDatabaseUtilities.getDataTable(m_databaseFileName, Constants.TableName.EventNames);
            int       count = 1;
            DataTable computedScoresTable = AccessDatabaseUtilities.getDataTable(m_databaseFileName, Constants.TableName.EventComputedScores);

            foreach (string eventName in m_selectedEventNames)
            {
                for (int i = 0; i < m_dataViews[eventName].Count; ++i)
                {
                    if (m_selectedTeams[m_currentTabNumber][eventName][i])
                    {
                        DataRow dRow = m_dataViews[eventName][i].Row;
                        int     originalTeamNumber = AccessDatabaseUtilities.getIntValue(dRow, "Team_Number");
                        string  teamName           = AccessDatabaseUtilities.getStringValue(dRow, "Team_Name");
                        string  memberNames        = AccessDatabaseUtilities.getStringValue(dRow, "Member_Names");
                        double  totalScore         = AccessDatabaseUtilities.getDoubleValue(dRow, "Total_Score");
                        int     teamNumber         = count;
                        DataRow newRow             = table.NewRow();
                        newRow["Team_Number"]          = keepOriginalTeamNumbersCheckbox.Checked?originalTeamNumber:teamNumber;
                        newRow["Team_Name"]            = teamName;
                        newRow["Member_Names"]         = memberNames;
                        newRow["Carryover"]            = carryoverTotalCheckbox.Checked ? totalScore : 0;
                        newRow["Original_Team_Number"] = originalTeamNumber;
                        newRow["Original_Event_Name"]  = eventName;
                        newRow["Total_Score"]          = 0;
                        newRow["Tiebreaker_Score"]     = 0;
                        newRow["Rank"] = 1;
                        table.Rows.Add(newRow);
                        newRow = computedScoresTable.NewRow();
                        newRow["Team_Number"] = keepOriginalTeamNumbersCheckbox.Checked ? originalTeamNumber : teamNumber;
                        computedScoresTable.Rows.Add(newRow);
                        count++;
                    }
                }
                DataTable scoresTable     = AccessDatabaseUtilities.getDataTable(m_databaseFileName, Constants.TableName.EventScores);
                int       numberOfMatches = (numberOfTeams / 2) + numberOfTeams % 2;
                for (int i = 1; i <= numberOfRounds; ++i)
                {
                    for (int j = 1; j <= numberOfMatches; ++j)
                    {
                        DataRow dRow = scoresTable.NewRow();
                        dRow["Table_Number"] = j;
                        dRow["Round_Number"] = i;
                        scoresTable.Rows.Add(dRow);
                    }
                }
            }
            AccessDatabaseUtilities.saveTableToDatabase(m_databaseFileName, Constants.TableName.EventNames);
            AccessDatabaseUtilities.saveTableToDatabase(m_databaseFileName, Constants.TableName.EventScores);
            AccessDatabaseUtilities.saveTableToDatabase(m_databaseFileName, Constants.TableName.EventComputedScores);
        }
예제 #30
0
 private void selectCurrentKnockoutRound()
 {
     for (int i = m_knockoutSessions.NumberOfRounds; i >= 1; --i)
     {
         List <string> skipColumnNames = new List <string>();
         skipColumnNames.Add("Carryover");
         if (Utilities.HasNull(AccessDatabaseUtilities.getDataTable(m_databaseFileName, Constants.TableName.KnockoutScores + "_" + i), skipColumnNames))
         {
             knockoutRoundsCombobox.SelectedIndex = i - 1;
             return;
         }
     }
     knockoutRoundsCombobox.SelectedIndex = 0;
 }