/// <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); } }
/// <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 } }
/// <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); } }
/// <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); }
/// <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); } }
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 } }
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); }
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; } }
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 } }
/// <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)); }
private void ForceRefresh() { Task.Run(() => BracketInfo.ForceRefreshPendingSets()); }
public bool DeleteBracket(BracketInfo bracketInfo) { return(_tournamentBracketService.DeleteTournamentBracket(bracketInfo)); }