/// <summary> /// Gets the bracket from the loaded tournament. /// </summary> /// <param name="bracketId">ID of the bracket</param> /// <returns>A Bracket wrapper class</returns> public Bracket GetBracket(int bracketId) { // Get the current bracket Tournaments.IBracket bracket = Tourny.Brackets.Single(x => x.Id == bracketId); return(new Bracket( services, bracket, Model.Brackets.Single(x => x.BracketID == bracketId) )); }
private List <MatchModel> CreateMatches(Tournaments.IBracket bracket) { List <MatchModel> matches = new List <MatchModel>(); // Add the matches to the database for (int i = 1; i <= bracket.NumberOfMatches; i++) { matches.Add(bracket.GetMatchModel(i)); } return(matches); }
/// <summary> /// This will finalize a bracket. /// </summary> /// <param name="bracketId">The ID of the bracket</param> /// <param name="roundData">The data that will be used to set the max amount of games.</param> /// <returns>True if the bracket was finalized or false if failed to save</returns> public bool FinalizeBracket(int bracketId, Dictionary <String, Dictionary <String, int> > roundData) { // Set variables BracketModel bracketModel = Model.Brackets.Single(x => x.BracketID == bracketId); Tournaments.IBracket bracket = Tourny.Brackets.Single(x => x.Id == bracketId); // Set max games for every round foreach (KeyValuePair <String, Dictionary <String, int> > roundInfo in roundData) { foreach (KeyValuePair <String, int> data in roundInfo.Value) { switch (roundInfo.Key) { case "upper": bracket.SetMaxGamesForWholeRound(int.Parse(data.Key), data.Value); break; case "lower": bracket.SetMaxGamesForWholeLowerRound(int.Parse(data.Key), data.Value); break; case "final": bracket.SetMaxGamesForWholeRound(int.Parse(data.Key), data.Value); break; } } } if (bracket.Validate()) { // Update the necesarry information bracketModel.Finalized = true; Model.InProgress = true; // Update the database bracketModel.Matches = bracket.GetModel(Model.TournamentID).Matches; services.Tournament.UpdateBracket(bracketModel); services.Tournament.UpdateTournament(Model); return(services.Save()); } else { return(false); } }
/// <summary> /// Will progress the tournament and add new players to the net bracket /// </summary> /// <param name="bracketId">ID of the bracket</param> /// <param name="isLocked">Lock or unlock the bracket</param> /// <returns>True if saved; false if not saved</returns> public bool LockBracket(int bracketId, bool isLocked) { Tournaments.IBracket currentBracket = Tourny.Brackets.Single(x => x.Id == bracketId); Tournaments.IBracket nextBracket = Tourny.Brackets.ElementAtOrDefault(Tourny.Brackets.FindIndex(x => x == currentBracket) + 1); // Make changes to the current bracket if (currentBracket != null) { BracketModel model = Model.Brackets.Single(x => x.BracketID == bracketId); model.IsLocked = isLocked; services.Tournament.UpdateBracket(model); } if (nextBracket != null) { BracketModel nextBracketModel = Model.Brackets.Single(x => x.BracketID == nextBracket.Id); List <TournamentUsersBracketModel> usersToProceed = new List <TournamentUsersBracketModel>(); Tourny.AdvancePlayersByRanking(currentBracket, nextBracket); //nextBracketModel.TournamentUsersBrackets = nextBracket.GetModel(Model.TournamentID).TournamentUsersBrackets; foreach (Tournaments.IPlayer player in nextBracket.Players) { TournamentUsersBracketModel user = new TournamentUsersBracketModel() { BracketID = nextBracket.Id, TournamentID = Model.TournamentID, TournamentUserID = player.Id, Seed = nextBracket.GetPlayerSeed(player.Id) }; usersToProceed.Add(user); } nextBracketModel.TournamentUsersBrackets = usersToProceed; services.Tournament.UpdateBracket(nextBracketModel); } return(services.Save()); }
/// <summary> /// Gathers all the brackets loaded into the Tournament class /// </summary> /// <returns>A List of all brackets in the tournament</returns> public List <Bracket> GetBrackets() { List <Bracket> brackets = new List <Bracket>(); for (int i = 0; i < Tourny.Brackets.Count; i++) { Tournaments.IBracket bracket = Tourny.Brackets.ElementAt(i); Tournaments.IBracket nextBracket = Tourny.Brackets.ElementAtOrDefault(i + 1); brackets.Add( new Bracket( services, bracket, Model.Brackets.Single(x => x.BracketID == bracket.Id) ) ); } return(brackets); }