public ITournament BuildTournament()
        {
            TournamentEntries = TournamentBuilderHelper.GetSeededEntries(TournamentEntries);
            var teamQueue  = TournamentBuilderHelper.GetTeamQueue(TournamentEntries);
            var roundCount = TournamentBuilderHelper.GetRoundCounts(TournamentEntries.Count, 2);

            Rounds = TournamentBuilderHelper.GetRounds(roundCount);

            ActiveRound = 1;

            foreach (var round in Rounds)
            {
                TournamentBuilderHelper.AddTeamsToPairings(teamQueue, this, round);
            }

            return(this);
        }
        public ITournament AdvanceRound()
        {
            var activeRound = Rounds.Where(x => x.RoundNum == ActiveRound).First();

            ReseedTournament();
            TournamentEntries = TournamentEntries.OrderByDescending(x => x.Seed).ToList();
            var teamQueue = TournamentBuilderHelper.GetTeamQueue(TournamentEntries);

            ActiveRound++;

            var nextRound = Rounds.Where(x => x.RoundNum == ActiveRound).First();

            if (nextRound != null)
            {
                TournamentBuilderHelper.AddTeamsToPairings(teamQueue, this, nextRound);
            }

            return(this);
        }