/// <summary>
 /// Unregisters gamer from bracket
 /// </summary>
 ///
 /// <param name="systemID">
 /// System ID associated with user
 /// </param>
 ///
 /// <param name="bracketID">
 /// Bracket ID associated with bracket
 /// </param>
 ///
 /// <returns>
 /// Boolean indicated success or fail in unregistration
 /// </returns>
 public bool UnregisterGamerFromBracket(int systemID, int bracketID)
 {
     /*
      * Status codes
      *
      * 2 - bracket is in progress
      * 1 - bracket not in progress and has already completed
      * 0 - bracket not in progress and has not begun
      */
     try
     {
         DatabaseQuery databaseQuery = new DatabaseQuery();
         TournamentBracketDatabaseQuery tournamentBracketDatabaseQuery = new TournamentBracketDatabaseQuery();
         string      hashedUserID = databaseQuery.GetHashedUserID(systemID);
         BracketInfo bracket      = tournamentBracketDatabaseQuery.GetBracketInfo(bracketID);
         if (bracket.StatusCode == 2)
         {
             return(tournamentBracketDatabaseQuery.DisqualifyGamerFromBracket(bracketID, hashedUserID));
         }
         else if (bracket.StatusCode == 0)
         {
             bool removeResult = tournamentBracketDatabaseQuery.RemoveGamerFromBracket(hashedUserID, bracketID);
             bool updateResult = tournamentBracketDatabaseQuery.UpdateBracketPlayerCount(bracketID, 0);
             if (removeResult && updateResult)
             {
                 return(true);
             }
         }
         return(false);
     }
     catch
     {
         return(false);
     }
 }
        /// <summary>
        /// Inserts gamer into bracket
        /// </summary>
        ///
        /// <param name="gamer">
        /// Gamer object to be inserted
        /// </param>
        ///
        /// <param name="bracketID">
        /// BracketID associated with bracket, where the gamer will be inserted
        /// </param>
        ///
        /// <returns>
        /// BracketPlayer object if insertion successful; null if not
        /// </returns>
        public BracketPlayer InsertGamerToBracket(GamerInfo gamer, BracketInfo bracket)
        {
            try
            {
                DatabaseQuery databaseQuery = new DatabaseQuery();
                TournamentBracketDatabaseQuery tournamentBracketDatabaseQuery = new TournamentBracketDatabaseQuery();
                GamerInfo     tempGamer     = databaseQuery.GetGamerInfo(gamer);
                BracketPlayer bracketPlayer = new BracketPlayer();
                bracketPlayer.BracketID    = bracket.BracketID;
                bracketPlayer.HashedUserID = tempGamer.HashedUserID;
                bracketPlayer.StatusCode   = 1;
                bracketPlayer.Claim        = null;
                bracketPlayer.Reason       = null;
                bool insertionResult = tournamentBracketDatabaseQuery.InsertBracketPlayer(bracketPlayer);
                if (insertionResult)
                {
                    tournamentBracketDatabaseQuery.UpdateBracketPlayerCount(bracket.BracketID, 1);
                    return(bracketPlayer);
                }
                return(null);
            }

            catch (Exception e)
            {
                Console.WriteLine(e);
                return(null);
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Gets bracket info associated with bracketID
        /// </summary>
        ///
        /// <param name="bracketID">
        /// BracketID associated with bracket
        /// </param>
        ///
        /// <returns>
        /// BracketInfo object if operation was successful;
        /// </returns>
        public BracketInfo GetBracketInfo(int bracketID)
        {
            var DB = new Database();

            using (MySqlConnection conn = new MySqlConnection(DB.GetConnString()))
            {
                using (MySqlCommand comm = conn.CreateCommand())
                {
                    comm.CommandText = "SELECT * FROM bracket_info WHERE bracketID=@BracketID";
                    comm.Parameters.AddWithValue("@BracketID", bracketID);
                    conn.Open();
                    using (MySqlDataReader reader = comm.ExecuteReader())
                    {
                        BracketInfo bracket = new BracketInfo();
                        reader.Read();
                        bracket.BracketID      = reader.GetInt32("bracketID");
                        bracket.BracketName    = reader.GetString("bracket_name");
                        bracket.Host           = reader.GetString("host");
                        bracket.BracketTypeID  = reader.GetInt32("bracketTypeID");
                        bracket.PlayerCount    = reader.GetInt32("number_player");
                        bracket.MaxCapacity    = reader.GetInt32("max_capacity");
                        bracket.GamePlayed     = reader.GetString("game_played");
                        bracket.GamingPlatform = reader.GetString("gaming_platform");
                        bracket.Rules          = reader.GetString("rules");
                        bracket.StartDate      = reader.GetDateTime("start_date");
                        bracket.EndDate        = reader.GetDateTime("end_date");
                        bracket.StatusCode     = reader.GetInt32("status_code");
                        conn.Close();
                        return(bracket);
                    }
                }
            }
        }
 /// <summary>
 /// Deletes bracket with provided bracket info for the MySQL query
 /// </summary>
 /// <param name="bracketFields"></param> Uses the bracket ID in the BracketField object
 /// <returns> boolean to indicate successful/unsuccessful delete </returns>
 public bool DeleteBracket(BracketInfo bracketFields)
 {
     try
     {
         if (bracketFields.StatusCode == 2)
         {
             bracketFields.StatusCode = 1;
             UpdateBracket(bracketFields);
             return(true);
         }
         else
         {
             using (conn = new MySqlConnection(CONNECTION_STRING))
             {
                 string       deleteQuery = string.Format("DELETE FROM bracket_info WHERE bracketID = {0}", bracketFields.BracketID);
                 MySqlCommand deleteCmd   = new MySqlCommand(deleteQuery, conn);
                 conn.Open();
                 deleteCmd.ExecuteNonQuery();
                 conn.Close();
             }
             return(true);
         }
     }
     catch (Exception)
     {
         return(false); // unsuccessful delete
     }
 }
Ejemplo n.º 5
0
        /// <summary>
        /// Gets all brackets in the database
        /// </summary>
        ///
        /// <returns>
        /// All brackets in the database
        /// </returns>
        public List <BracketInfo> GetAllBrackets()
        {
            var DB = new Database();

            using (MySqlConnection conn = new MySqlConnection(DB.GetConnString()))
            {
                string       selectQuery = string.Format("SELECT * FROM bracket_info");
                MySqlCommand selectCmd   = new MySqlCommand(selectQuery, conn);
                conn.Open();
                List <BracketInfo> listOfBrackets = new List <BracketInfo>();
                using (MySqlDataReader reader = selectCmd.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        BracketInfo bracket = new BracketInfo();
                        bracket.BracketID      = reader.GetInt32("bracketID");
                        bracket.BracketName    = reader.GetString("bracket_name");
                        bracket.Host           = reader.GetString("host");
                        bracket.PlayerCount    = reader.GetInt32("number_player");
                        bracket.MaxCapacity    = reader.GetInt32("max_capacity");
                        bracket.GamePlayed     = reader.GetString("game_played");
                        bracket.GamingPlatform = reader.GetString("gaming_platform");
                        bracket.StartDate      = reader.GetDateTime("start_date");
                        bracket.EndDate        = reader.GetDateTime("end_date");
                        bracket.StatusCode     = reader.GetInt32("status_code");
                        listOfBrackets.Add(bracket);
                    }
                }
                return(listOfBrackets);
            }
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Reads all the brackets whose name contains the search request.
        /// </summary>
        /// <param name="bracketRequest"> String of search request </param>
        /// <returns> A list of Brackets </returns>
        public List <BracketInfo> ReadBrackets(string bracketRequest)
        {
            var DB             = new Database();
            var listOfBrackets = new List <BracketInfo>();

            using (MySqlConnection conn = new MySqlConnection(DB.GetConnString()))
            {
                string selectQuery = string.Format("SELECT * FROM bracket_info WHERE bracket_name LIKE \'%{0}%\'", bracketRequest);
                Console.WriteLine(selectQuery);
                MySqlCommand selectCmd = new MySqlCommand(selectQuery, conn);
                conn.Open();
                using (MySqlDataReader reader = selectCmd.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        BracketInfo bracket = new BracketInfo();
                        bracket.BracketID      = reader.GetInt32("bracketID");
                        bracket.BracketName    = reader.GetString("bracket_name");
                        bracket.Host           = reader.GetString("host");
                        bracket.PlayerCount    = reader.GetInt32("number_player");
                        bracket.GamePlayed     = reader.GetString("game_played");
                        bracket.GamingPlatform = reader.GetString("gaming_platform");
                        bracket.StartDate      = reader.GetDateTime("start_date");
                        bracket.EndDate        = reader.GetDateTime("end_date");
                        bracket.StatusCode     = reader.GetInt32("status_code");
                        listOfBrackets.Add(bracket);
                    }
                }
            }
            return(listOfBrackets);
        }
Ejemplo n.º 7
0
 /// <summary>
 /// Checks the validate fields method and confirms the bracket creation
 /// </summary>
 /// <param name="bracketInfo"></param> bracket fields to be validated and sent
 /// <returns></returns>
 public bool ValidateCreateBracket(BracketInfo bracketInfo)
 {
     if (ValidateFields(bracketInfo))
     {
         return(_tournamentBracketService.CreateTournamentBracket(bracketInfo));
     }
     else
     {
         return(false);
     }
 }
Ejemplo n.º 8
0
        public List <BracketInfo> GetBracketsInEvent(int eventID)
        {
            List <int>         BracketIDs    = _eventDataAccess.GetAllBracktsInEvent(eventID);
            List <BracketInfo> listOfBrackts = new List <BracketInfo>();
            BracketInfo        Bracket       = new BracketInfo();

            foreach (int id in BracketIDs)
            {
                Bracket = _tournamentBracketDataAccess.GetBracketByID(id);
                listOfBrackts.Add(Bracket);
            }
            return(listOfBrackts);
        }
        /// <summary>
        /// Gets a specific bracket by its ID
        /// </summary>
        ///
        /// <param name="bracketID">
        /// Bracket ID to be used to fetch bracket objectr
        /// </param>
        ///
        /// <returns>
        /// Bracket object associated with bracket ID
        /// </returns>
        public BracketInfo GetBracketByID(int bracketID)
        {
            bool bracketStatus = CheckBracketExistenceByID(bracketID);

            if (!bracketStatus)
            {
                return(null);
            }
            else
            {
                TournamentBracketDatabaseQuery tournamentBracketDatabaseQuery = new TournamentBracketDatabaseQuery();
                BracketInfo bracket = tournamentBracketDatabaseQuery.GetBracketInfo(bracketID);
                return(bracket);
            }
        }
 public IActionResult DeleteBracket(BracketInfo bracketInfo)
 {
     try
     {
         return(Ok(TournamentBracketManager.DeleteBracket(bracketInfo)));
     }
     catch (ArgumentException)
     {
         return(StatusCode(StatusCodes.Status404NotFound));
     }
     catch
     {
         return(StatusCode(StatusCodes.Status500InternalServerError));
     }
 }
 /// <summary>
 /// Updates the bracket using the provided bracket data,
 /// bases the search on the bracket ID assigned for MySQL query
 /// </summary>
 /// <param name="bracketFields"></param> Updated field(s) to update the query
 /// <returns> boolean to indicate successful/unsuccessful update to database </returns>
 public bool UpdateBracket(BracketInfo bracketFields)
 {
     if (!CheckBracketExistenceByID(bracketFields.BracketID))
     {
         return(false);
     }
     try
     {
         using (conn = new MySqlConnection(CONNECTION_STRING))
         {
             using (MySqlCommand updateCmd = conn.CreateCommand())
             {
                 updateCmd.CommandText = "UPDATE bracket_info " +
                                         "SET " +
                                         "bracket_name = @bracket_name, " +
                                         "bracketTypeID = @bracketTypeID, " +
                                         "number_player = @number_player, " +
                                         "game_played = @game_played, " +
                                         "gaming_platform = @gaming_platform, " +
                                         "rules = @rules, " +
                                         "start_date = @start_date, " +
                                         "end_date = @end_date ," +
                                         "reason = @reason, " +
                                         "status_code = @statusCode " +
                                         "WHERE bracketID = @bracketID";
                 updateCmd.Parameters.AddWithValue("@bracketID", bracketFields.BracketID);
                 updateCmd.Parameters.AddWithValue("@bracket_name", bracketFields.BracketName);
                 updateCmd.Parameters.AddWithValue("@bracketTypeID", bracketFields.BracketTypeID);
                 updateCmd.Parameters.AddWithValue("@number_player", bracketFields.PlayerCount);
                 updateCmd.Parameters.AddWithValue("@game_played", bracketFields.GamePlayed);
                 updateCmd.Parameters.AddWithValue("@gaming_platform", bracketFields.GamingPlatform);
                 updateCmd.Parameters.AddWithValue("@rules", bracketFields.Rules);
                 updateCmd.Parameters.AddWithValue("@start_date", bracketFields.StartDate);
                 updateCmd.Parameters.AddWithValue("@end_date", bracketFields.EndDate);
                 updateCmd.Parameters.AddWithValue("@reason", bracketFields.Reason);
                 updateCmd.Parameters.AddWithValue("@statusCode", bracketFields.StatusCode);
                 conn.Open();
                 updateCmd.ExecuteNonQuery();
                 conn.Close();
                 return(true);
             }
         }
     }
     catch (Exception e)
     {
         return(false); // unsuccessful update
     }
 }
Ejemplo n.º 12
0
        public void IncrementBracketPlayerCount(BracketInfo bracket)
        {
            var DB = new Database();

            using (MySqlConnection conn = new MySqlConnection(DB.GetConnString()))
            {
                using (MySqlCommand comm = conn.CreateCommand())
                {
                    comm.CommandText = "UPDATE bracket_info SET number_player = number_player + 1 WHERE bracketID=@BracketID";
                    comm.Parameters.AddWithValue("@BracketID", bracket.BracketID);
                    conn.Open();
                    comm.ExecuteNonQuery();
                    conn.Close();
                }
            }
        }
        public void GetBracket_Pass()
        {
            bool result = true;

            try
            {
                BracketInfo actual = _tournamentBracketManager.GetBracketByID(1);
                if (actual == null)
                {
                    result = false;
                }
            }
            catch (Exception e)
            {
                result = false;
            }
            Assert.IsTrue(result);
        }
Ejemplo n.º 14
0
 public bool UpdateBracketInformation(BracketInfo bracketInfo)
 {
     try
     {
         if (bracketInfo == null)
         {
             throw new ArgumentException();
         }
         else
         {
             _loggingManager.Log("Bracket Update", "");
             return(_tournamentBracketService.UpdateTournamentBracket(bracketInfo));
         }
     } catch (Exception e)
     {
         _loggingManager.Log("Bracket Update", "Update Error");
         throw e;
     }
 }
Ejemplo n.º 15
0
        public void InsertBracketInfo(BracketInfo tempBracket)
        {
            var DB = new Database();

            using (MySqlConnection conn = new MySqlConnection(DB.GetConnString()))
            {
                using (MySqlCommand comm = conn.CreateCommand())
                {
                    comm.CommandText = "INSERT INTO bracket_info(bracketID, bracket_name, bracketTypeID, number_player) VALUES(@bracketID, @bracket_name, @bracketTypeID, @number_player)";

                    comm.Parameters.AddWithValue("@bracketID", tempBracket.BracketID);
                    comm.Parameters.AddWithValue("@bracket_name", tempBracket.BracketName);
                    comm.Parameters.AddWithValue("@bracketTypeID", tempBracket.BracketTypeID);
                    comm.Parameters.AddWithValue("@number_player", tempBracket.PlayerCount);
                    conn.Open();
                    comm.ExecuteNonQuery();
                    conn.Close();
                }
            }
        }
 /// <summary>
 /// Retrieves latest bracket ID to increment and assign.
 /// Performs MySQL query to insert bracket with provided fields
 /// </summary>
 /// <param name="bracketFields"></param> provided bracket fields
 /// <returns> boolean to indicate a successful/unsuccessful insert to database </returns>
 public bool InsertNewBracket(BracketInfo bracketFields)
 {
     bracketFields.BracketID = GetLatestBracketID() + 1;
     try
     {
         using (conn = new MySqlConnection(CONNECTION_STRING))
         {
             using (MySqlCommand insertCmd = conn.CreateCommand())
             {
                 insertCmd.CommandText = "INSERT INTO bracket_info(bracketID, bracket_name, host, bracketTypeID, " +
                                         "number_player, max_capacity, game_played, gaming_platform, rules, start_date, end_date, status_code, reason )" +
                                         "VALUES(@bracketID, @bracket_name, @host, @bracketTypeID, @number_player, @max_capacity, @game_played, " +
                                         "@gaming_platform, @rules, @start_date, @end_date, @status_code, @reason)";
                 insertCmd.Parameters.AddWithValue("@bracketID", bracketFields.BracketID);
                 insertCmd.Parameters.AddWithValue("@bracket_name", bracketFields.BracketName);
                 insertCmd.Parameters.AddWithValue("@host", bracketFields.Host);
                 insertCmd.Parameters.AddWithValue("@bracketTypeID", bracketFields.BracketTypeID);
                 insertCmd.Parameters.AddWithValue("@number_player", bracketFields.PlayerCount);
                 insertCmd.Parameters.AddWithValue("@max_capacity", bracketFields.MaxCapacity);
                 insertCmd.Parameters.AddWithValue("@game_played", bracketFields.GamePlayed);
                 insertCmd.Parameters.AddWithValue("@gaming_platform", bracketFields.GamingPlatform);
                 insertCmd.Parameters.AddWithValue("@rules", bracketFields.Rules);
                 insertCmd.Parameters.AddWithValue("@start_date", bracketFields.StartDate);
                 insertCmd.Parameters.AddWithValue("@end_date", bracketFields.EndDate);
                 insertCmd.Parameters.AddWithValue("@status_code", bracketFields.StatusCode);
                 insertCmd.Parameters.AddWithValue("@reason", bracketFields.Reason);
                 conn.Open();
                 insertCmd.ExecuteNonQuery();
                 conn.Close();
             }
         }
         return(true);
     }
     catch (Exception)
     {
         return(false); // unsuccessful insert
     }
 }
Ejemplo n.º 17
0
        /// <summary>
        /// Validates the bracket fields given according to business rules.
        /// </summary>
        /// <param name="bracketFields"> Fields passed from controller layer. </param>
        /// <returns> A boolean to confirm that fields align with business rules. </returns>
        public bool ValidateFields(BracketInfo bracketFields)
        {
            if (bracketFields == null)
            {
                throw new ArgumentNullException();
            }

            if ((bracketFields.BracketName == null) ||
                (bracketFields.BracketName.Length < 5) ||
                (bracketFields.BracketName.Length > 75))
            {
                throw new ArgumentException("Bracket name must be between 5-75 characters");
            }
            else if ((bracketFields.MaxCapacity < 2) ||
                     (bracketFields.MaxCapacity > 128))
            {
                throw new ArgumentException("Only 2-128 competitors allowed");
            }
            else if ((bracketFields.GamePlayed == null) ||
                     (bracketFields.GamePlayed.Length > 50))
            {
                throw new ArgumentException("Game title cannot be larger than 50 characters");
            }
            else if ((bracketFields.GamingPlatform == null) ||
                     (bracketFields.GamingPlatform.Length > 50))
            {
                throw new ArgumentException("Gaming platform cannot be larger than 50 characters");
            }
            else if (bracketFields.Rules != null && bracketFields.Rules.Length > 700)
            {
                throw new ArgumentException("Ruleset cannot exceed 700 characters");
            }
            else
            {
                return(true);
            }
        }
 /// <summary>
 /// Registers gamer into a bracket
 /// </summary>
 ///
 /// <param name="gamer">
 /// User's Gamer info
 /// </param>
 ///
 /// <param name="bracketID">
 /// The bracket ID to reference the bracket that the user is being
 /// registered to
 /// </param>
 ///
 /// <returns>
 /// BracketPlayer object if registration is successful
 /// </returns>
 public BracketPlayer InsertGamerToBracket(GamerInfo gamer, BracketInfo bracket)
 {
     return(_tournamentBracketDataAccess.InsertGamerToBracket(gamer, bracket));
 }
 /// <summary>
 /// Creates a tournament bracket with provided fields from BracketInfo parameter.
 /// </summary>
 /// <param name="bracketFields"> BracketInfo object containing input fields. </param>
 /// <returns> boolean of a successful/unsuccessful bracket creation. </returns>
 public bool CreateTournamentBracket(BracketInfo bracketFields)
 {
     return(_tournamentBracketDataAccess.InsertNewBracket(bracketFields));
 }
 /// <summary>
 /// Deletes a tournament bracket with provided fields from BracketInfo parameter.
 /// </summary>
 /// <param name="bracketFields"> BracketInfo object containing input fields. </param>
 /// <returns> boolean of a successful/unsuccessful bracket deletion. </returns>
 public bool DeleteTournamentBracket(BracketInfo bracketFields)
 {
     return(_tournamentBracketDataAccess.DeleteBracket(bracketFields));
 }
Ejemplo n.º 21
0
 private void ForceRefresh()
 {
     Task.Run(() => BracketInfo.ForceRefreshPendingSets());
 }
Ejemplo n.º 22
0
 public bool DeleteBracket(BracketInfo bracketInfo)
 {
     return(_tournamentBracketService.DeleteTournamentBracket(bracketInfo));
 }