private void createSwissLeagueComputedScoresTable(int numberOfRounds)
        {
            List <DatabaseField> fields      = new List <DatabaseField>();
            List <string>        primaryKeys = new List <string>();

            fields.Add(new DatabaseField("Team_Number", "INTEGER"));
            primaryKeys.Add("Team_Number");
            for (int i = 1; i <= numberOfRounds; ++i)
            {
                fields.Add(new DatabaseField("Score_After_Round_" + i, "NUMBER"));
                fields.Add(new DatabaseField("Rank_After_Round_" + i, "NUMBER"));
                fields.Add(new DatabaseField("Tiebreaker_After_Round_" + i, "NUMBER"));
            }
            AccessDatabaseUtilities.createTable(m_databaseFileName, Constants.TableName.EventComputedScores, fields, primaryKeys);
        }
        private static void createTourneyDatabases()
        {
            TourneyInfo m_tourneyInfo = new TourneyInfo(Constants.getCurrentTourneyInformationFileName(), true);

            m_tourneyInfo.TourneyName = m_tourneyName;
            string databaseFileName = Constants.getCurrentTourneyEventsFileName();

            AccessDatabaseUtilities.createDatabase(databaseFileName);
            List <DatabaseField> fields = new List <DatabaseField>();

            fields.Add(new DatabaseField("Event_Name", "TEXT", 255));
            fields.Add(new DatabaseField("Event_Type", "TEXT", 255));
            List <string> primaryKeyFields = new List <string>();

            primaryKeyFields.Add("Event_Name");
            AccessDatabaseUtilities.createTable(databaseFileName, Constants.TableName.TourneyEvents, fields, primaryKeyFields);
        }
        private void createSwissLeagueTeamsTable()
        {
            List <DatabaseField> fields = new List <DatabaseField>();

            fields.Add(new DatabaseField("Team_Number", "INTEGER"));
            fields.Add(new DatabaseField("Team_Name", "TEXT", 255));
            fields.Add(new DatabaseField("Member_Names", "TEXT", 255));
            fields.Add(new DatabaseField("Carryover", "NUMBER"));
            fields.Add(new DatabaseField("Original_Team_Number", "INTEGER"));
            fields.Add(new DatabaseField("Original_Event_Name", "TEXT", 255));
            fields.Add(new DatabaseField("Total_Score", "NUMBER"));
            fields.Add(new DatabaseField("Tiebreaker_Score", "NUMBER"));
            fields.Add(new DatabaseField("Rank", "INTEGER"));
            List <string> primaryKeys = new List <string>();

            primaryKeys.Add("Team_Number");
            AccessDatabaseUtilities.createTable(m_databaseFileName, Constants.TableName.EventNames, fields, primaryKeys);
        }
        private void loadTourneyEvents()
        {
            string databaseFileName = Constants.getCurrentTourneyEventsFileName();

            if (!File.Exists(databaseFileName))
            {
                AccessDatabaseUtilities.createDatabase(databaseFileName);
                List <DatabaseField> fields = new List <DatabaseField>();
                fields.Add(new DatabaseField("Event_Name", "TEXT", 255));
                fields.Add(new DatabaseField("Event_Type", "TEXT", 255));
                List <string> primaryKeyFields = new List <string>();
                primaryKeyFields.Add("Event_Name");
                AccessDatabaseUtilities.createTable(databaseFileName, Constants.TableName.TourneyEvents, fields, primaryKeyFields);
            }
            else
            {
                AccessDatabaseUtilities.loadDatabaseToTable(databaseFileName, Constants.TableName.TourneyEvents);
            }
        }
        private void createRoundScoresTable(int roundNumber)
        {
            List <DatabaseField> fields = new List <DatabaseField>();

            fields.Add(new DatabaseField("Match_Number", "INTEGER"));
            fields.Add(new DatabaseField("Team_Number", "INTEGER"));
            fields.Add(new DatabaseField("Team_Name", "TEXT", 255));
            fields.Add(new DatabaseField("Carryover", "NUMBER"));
            fields.Add(new DatabaseField("Total", "NUMBER"));
            DataTable table            = AccessDatabaseUtilities.getDataTable(m_databaseFileName, Constants.TableName.KnockoutSessions);
            DataRow   dRow             = table.Rows.Find(roundNumber);
            int       numberOfSessions = (int)dRow["Number_Of_Sessions"];

            m_oldNumberOfSessions[roundNumber] = numberOfSessions;
            for (int i = 1; i <= numberOfSessions; ++i)
            {
                fields.Add(new DatabaseField("Session_" + i + "_Score", "NUMBER"));
            }
            List <string> primaryKeys = new List <string>();

            primaryKeys.Add("Match_Number");
            primaryKeys.Add("Team_Number");
            DataTable scoresTable     = AccessDatabaseUtilities.createTable(m_databaseFileName, Constants.TableName.KnockoutScores + "_" + roundNumber, fields, primaryKeys);
            int       numberOfMatches = Convert.ToInt32(Math.Pow(2, roundNumber - 1));

            for (int i = 1; i <= numberOfMatches; ++i)
            {
                DataRow dScoresRow = scoresTable.NewRow();
                dScoresRow["Match_Number"] = i;
                int teamNumber = i;
                dScoresRow["Team_Number"] = i;
                dScoresRow["Team_Name"]   = LocalUtilities.getTeamName(m_databaseFileName, Constants.TableName.KnockoutTeams, i);
                scoresTable.Rows.Add(dScoresRow);
                dScoresRow = scoresTable.NewRow();
                dScoresRow["Match_Number"] = i;
                teamNumber = 2 * numberOfMatches - (i - 1);
                dScoresRow["Team_Number"] = teamNumber;
                dScoresRow["Team_Name"]   = LocalUtilities.getTeamName(m_databaseFileName, Constants.TableName.KnockoutTeams, teamNumber);
                scoresTable.Rows.Add(dScoresRow);
            }
            AccessDatabaseUtilities.saveTableToDatabase(m_databaseFileName, Constants.TableName.KnockoutScores + "_" + roundNumber);
        }
        private void createSwissLeagueScoresTable()
        {
            List <DatabaseField> fields = new List <DatabaseField>();

            fields.Add(new DatabaseField("Round_Number", "INTEGER"));
            fields.Add(new DatabaseField("Table_Number", "INTEGER"));
            fields.Add(new DatabaseField("Team_1_Number", "INTEGER"));
            fields.Add(new DatabaseField("Team_2_Number", "INTEGER"));
            fields.Add(new DatabaseField("Team_1_IMPs", "NUMBER"));
            fields.Add(new DatabaseField("Team_2_IMPs", "NUMBER"));
            fields.Add(new DatabaseField("Team_1_VPs", "NUMBER"));
            fields.Add(new DatabaseField("Team_2_VPs", "NUMBER"));
            fields.Add(new DatabaseField("Team_1_VP_Adjustment", "NUMBER"));
            fields.Add(new DatabaseField("Team_2_VP_Adjustment", "NUMBER"));
            List <string> primaryKeys = new List <string>();

            primaryKeys.Add("Round_Number");
            primaryKeys.Add("Table_Number");
            AccessDatabaseUtilities.createTable(m_databaseFileName, Constants.TableName.EventScores, fields, primaryKeys);
        }
        private void createTeamsTable()
        {
            List <DatabaseField> fields = new List <DatabaseField>();

            fields.Add(new DatabaseField("Team_Number", "INTEGER"));
            fields.Add(new DatabaseField("Team_Name", "TEXT", 255));
            fields.Add(new DatabaseField("Member_Names", "TEXT", 255));
            fields.Add(new DatabaseField("Original_Team_Number", "INTEGER"));
            fields.Add(new DatabaseField("Original_Event_Name", "TEXT", 255));
            List <string> primaryKeys = new List <string>();

            primaryKeys.Add("Team_Number");
            DataTable table = AccessDatabaseUtilities.createTable(m_databaseFileName, Constants.TableName.KnockoutTeams, fields, primaryKeys);

            for (int i = 1; i <= numberOfTeams; i++)
            {
                DataRow dRow        = table.NewRow();
                string  sessionName = (Constants.KnockoutSessionNames.Length >= i ? Constants.KnockoutSessionNames[i - 1] : "Round_of_" + Math.Pow(2, i));
                dRow["Team_Number"] = i;
                dRow["Team_Name"]   = "Team " + i;
                table.Rows.Add(dRow);
            }
            AccessDatabaseUtilities.saveTableToDatabase(m_databaseFileName, Constants.TableName.KnockoutTeams);
        }
        private void createSessionsTable()
        {
            List <DatabaseField> fields = new List <DatabaseField>();

            fields.Add(new DatabaseField("Round_Number", "INTEGER"));
            fields.Add(new DatabaseField("Round_Name", "TEXT", 255));
            fields.Add(new DatabaseField("Number_Of_Sessions", "INTEGER"));
            List <string> primaryKeys = new List <string>();

            primaryKeys.Add("Round_Number");
            DataTable table = AccessDatabaseUtilities.createTable(m_databaseFileName, Constants.TableName.KnockoutSessions, fields, primaryKeys);

            for (int i = 1; i <= numberOfRounds; i++)
            {
                DataRow dRow        = table.NewRow();
                string  sessionName = (Constants.KnockoutSessionNames.Length >= i ? Constants.KnockoutSessionNames[i - 1] : "Round_of_" + Convert.ToInt32(Math.Pow(2, i)));
                dRow["Round_Number"]       = i;
                dRow["Round_Name"]         = sessionName;
                dRow["Number_Of_Sessions"] = 3;
                table.Rows.Add(dRow);
                createRoundScoresTable(i);
            }
            AccessDatabaseUtilities.saveTableToDatabase(m_databaseFileName, Constants.TableName.KnockoutSessions);
        }