Пример #1
0
        public void getTournamentBracket(LiteDatabase db, ref Tournament tourney)
        {
            tourney.CreateBracket();

            var collection = db.GetCollection <Matchup>("matchups");

            long           tourn_id = tourney.info.UID;
            List <Matchup> ms       = collection.Find(Query.All("_id", Query.Descending), 0, 100).Where(x => x.TournamentID == tourn_id).ToList();

            foreach (Matchup m in ms)
            {
                Matchup mat = tourney.bracket.Matchups[m.ID];
                //Override info
                mat.UID          = m.UID;
                mat.TournamentID = m.TournamentID;
                mat.RoundID      = m.RoundID;
                mat.LobbyName    = m.LobbyName;
                mat.LobbyPass    = m.LobbyPass;
                if (m.Team1ID > 0)
                {
                    mat.Team1 = tourney.getTeamByUID(m.Team1ID);
                }
                mat.Team1 = tourney.getTeamByUID(m.Team1ID);
                if (m.Team2ID > 0)
                {
                    mat.Team2 = tourney.getTeamByUID(m.Team2ID);
                }
                mat.Team2 = tourney.getTeamByUID(m.Team2ID);
                if (m.Team1ReportedWinnerID > 0)
                {
                    mat.Team1ReportedWinner = tourney.getTeamByUID(m.Team1ReportedWinnerID);
                }
                if (m.Team2ReportedWinnerID > 0)
                {
                    mat.Team2ReportedWinner = tourney.getTeamByUID(m.Team2ReportedWinnerID);
                }
                if (m.WinnerID > 0)
                {
                    mat.Winner = tourney.getTeamByUID(m.WinnerID);
                }
                if (m.NextMatchupID > 0)
                {
                    mat.Next = tourney.getmatchupByUID(m.NextMatchupID);
                }
                mat.InProgress = m.InProgress;
            }
        }
Пример #2
0
        public void getTournamentBracket(MySqlConnection conn, ref Tournament tourney, long tourn_id)
        {
            string q = string.Format("SELECT * FROM matchups WHERE tournament_id = '{0}' ORDER BY ID DESC", tourn_id);

            MySqlDataReader rdr = ExecuteQuery(conn, q);

            //Populate Rounds
            tourney.CreateBracket();

            while (rdr.Read())
            {
                long _uid    = rdr.GetInt64(rdr.GetOrdinal("ID"));
                int  ordinal = rdr.GetOrdinal("team1_id");

                ordinal = rdr.GetOrdinal("team1_id");
                long _team1_id = rdr.IsDBNull(ordinal) ? 0 : rdr.GetInt64(ordinal);
                ordinal = rdr.GetOrdinal("team2_id");
                long _team2_id          = rdr.IsDBNull(ordinal) ? 0 : rdr.GetInt64(ordinal);
                bool status_in_progress = rdr.GetBoolean(rdr.GetOrdinal("status_in_progress"));
                ordinal = rdr.GetOrdinal("next_matchup_id");
                long _next_matchup_id = rdr.IsDBNull(ordinal) ? 0 : rdr.GetInt64(ordinal);
                ordinal = rdr.GetOrdinal("winner_id");
                ulong _winner_id = rdr.IsDBNull(ordinal) ? 0 : rdr.GetUInt64(ordinal);
                int   _round_Id  = rdr.GetInt32(rdr.GetOrdinal("round_id"));
                ordinal = rdr.GetOrdinal("team1_reported_winner_id");
                ulong _team1_reported_winner_id = rdr.IsDBNull(ordinal) ? 0 : rdr.GetUInt64(ordinal);
                ordinal = rdr.GetOrdinal("team2_reported_winner_id");
                ulong  _team2_reported_winner_id = rdr.IsDBNull(ordinal) ? 0 : rdr.GetUInt64(ordinal);
                string lobby_name = rdr.GetString(rdr.GetOrdinal("lobby_name"));
                string lobby_pass = rdr.GetString(rdr.GetOrdinal("lobby_pass"));

                Matchup m = new Matchup();
                m.UID       = _uid;
                m.RoundID   = _round_Id;
                m.LobbyName = lobby_name;
                m.LobbyPass = lobby_pass;

                if (_team1_id > 0)
                {
                    m.Team1 = tourney.getTeamByUID(_team1_id);
                }
                else
                {
                    m.Team1 = null;
                }
                if (_team2_id > 0)
                {
                    m.Team2 = tourney.getTeamByUID(_team2_id);
                }
                else
                {
                    m.Team2 = null;
                }

                //Reported Winners
                if (_team1_reported_winner_id > 0)
                {
                    m.Team1ReportedWinner = tourney.getTeamByUID(_team1_id);
                }
                else
                {
                    m.Team1ReportedWinner = null;
                }
                if (_team2_reported_winner_id > 0)
                {
                    m.Team2ReportedWinner = tourney.getTeamByUID(_team2_id);
                }
                else
                {
                    m.Team2ReportedWinner = null;
                }

                if (_winner_id > 0)
                {
                    m.Winner = tourney.getTeamByUID(_team2_id);
                }
                else
                {
                    m.Winner = null;
                }

                if (_next_matchup_id > 0)
                {
                    m.Next = tourney.getmatchupByUID(_next_matchup_id);
                }

                m.InProgress = status_in_progress; //Winner setting can mess up stuff
                tourney.bracket.Rounds[_round_Id].Matchups.Add(m);
            }
            rdr.Close();
        }