Ejemplo n.º 1
0
        /// <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)
                       ));
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        /// <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);
            }
        }
Ejemplo n.º 4
0
        /// <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());
        }
Ejemplo n.º 5
0
        /// <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);
        }