示例#1
0
        public ActionResult Create(TournamentBindingModel model)
        {
            if (!ModelState.IsValid)
            {
                TournamentBindingModel model1 = GetReadyModel(model);
                return(View(model1));
            }

            List <Team> teams = new List <Team>();
            Team        team;

            foreach (var teamId in model.Selected)
            {
                int id = int.Parse(teamId);
                team = _context.Teams.SingleOrDefault(t => t.Id == id);
                teams.Add(team);
            }
            var tournament = new TournamentTable(teams, model.Name);

            tournament.GenerateRounds();

            _context.Tournaments.Add(tournament);
            _context.SaveChanges();
            return(RedirectToAction("Edit", tournament));
        }
        public ITournament deleteTournament(int id)
        {
            var tournament = getTournament(id);

            foreach (var round in tournament.Rounds)
            {
                foreach (var matchup in round.Matchups)
                {
                    foreach (var matchupEntry in matchup.MatchupEntries)
                    {
                        MatchupEntriesTable.Delete(matchupEntry, dbConn);
                    }
                    MatchupsTable.Delete(matchup, dbConn);
                }
                RoundsTable.Delete(round, dbConn);
            }

            foreach (var tournamentEntry in tournament.TournamentEntries)
            {
                TournamentEntryTable.Delete(tournamentEntry, dbConn);
            }

            foreach (var tournamentPrize in tournament.TournamentPrizes)
            {
                TournamentPrizesTable.Delete(tournamentPrize, dbConn);
            }

            TournamentTable.Delete(tournament, dbConn);
            return(tournament);
        }
示例#3
0
    public static void Tally(Stream inStream, Stream outStream)
    {
        var fullTable = new TournamentTable();

        using (StreamReader input = new StreamReader(inStream))
        {
            while (!input.EndOfStream)
            {
                string oneMatch     = input.ReadLine();
                var    currentMatch = new Match(oneMatch);
                fullTable.AddTeams(currentMatch);
            }
        }
        var    sorted = fullTable.SortTable();
        string header = "Team                           | MP |  W |  D |  L |  P";

        using (StreamWriter output = new StreamWriter(outStream))
        {
            output.Write(header);
            foreach (var line in sorted)
            {
                output.Write("\n");
                output.Write($"{line.Name,-30} | {line.MatchesPlayed,2} | {line.Wins,2} | {line.Draws,2} | {line.Losses,2} | {line.Points,2}");
            }
        }
    }
        public ITournament saveActiveRound(ITournament entry)
        {
            TournamentTable.Update(entry, dbConn);
            entry.Rounds.ForEach(x => x.TournamentId = entry.TournamentId);
            var activeRound = entry.Rounds.Where(x => x.RoundNum == entry.ActiveRound).First();

            activeRound.Matchups.ForEach(x => x.RoundId = activeRound.RoundId);
            CreateRoundLinks(activeRound, entry.TournamentEntries);

            return(entry);
        }
        public ITournament getTournament(int id)
        {
            var tournament           = TournamentTable.Get(id, dbConn);
            var allRounds            = RoundsTable.GetAll(dbConn);
            var allMatchups          = MatchupsTable.GetAll(dbConn);
            var allMatchupEntries    = MatchupEntriesTable.GetAll(dbConn);
            var allTournamentEntries = TournamentEntryTable.GetAll(dbConn);
            var allTeams             = TeamsTable.GetAll(dbConn);
            var allTeamMembers       = TeamMembersTable.GetAll(dbConn);
            var allPersons           = PersonsTable.GetAll(dbConn);
            var allTournamentPrizes  = TournamentPrizesTable.GetAll(dbConn);

            tournament.TournamentEntries = allTournamentEntries.Where(x => x.TournamentId == tournament.TournamentId).ToList();
            tournament.TournamentPrizes  = allTournamentPrizes.Where(x => x.TournamentId == tournament.TournamentId).ToList();

            foreach (var entry in tournament.TournamentEntries)
            {
                var entryMembers = allTeamMembers.Where(x => x.TeamId == entry.TeamId).ToList();
                foreach (var member in entryMembers)
                {
                    entry.Members.Add(allPersons.Find(x => x.PersonId == member.PersonId));
                }
                var theTeam = allTeams.Where(x => x.TeamId == entry.TeamId).First();
                tournament.Teams.Add(theTeam);
            }
            tournament.Rounds = allRounds.Where(x => x.TournamentId == tournament.TournamentId).ToList();
            foreach (var round in tournament.Rounds)
            {
                round.Matchups = allMatchups.Where(x => x.RoundId == round.RoundId).ToList();
                foreach (var matchup in round.Matchups)
                {
                    matchup.MatchupEntries = allMatchupEntries.Where(x => x.MatchupId == matchup.MatchupId).ToList();
                    foreach (var team in matchup.MatchupEntries)
                    {
                        team.TheTeam = tournament.TournamentEntries.Where(x => x.TournamentEntryId == team.TournamentEntryId).First();
                    }
                }
            }

            return(tournament);
        }
        public ITournament createTournament(ITournament entry)
        {
            ITournament tournament = TournamentTable.Create(entry, dbConn);

            if (tournament == null)
            {
                return(null);
            }

            entry.TournamentEntries.ForEach(x => x.TournamentId = tournament.TournamentId);
            entry.TournamentEntries.ForEach(x => TournamentEntryTable.Create(x, dbConn));
            entry.TournamentPrizes.ForEach(x => x.TournamentId = tournament.TournamentId);
            entry.TournamentPrizes.ForEach(x => TournamentPrizesTable.Create(x, dbConn));

            entry.Rounds.ForEach(x => x.TournamentId = tournament.TournamentId);

            foreach (var round in entry.Rounds)
            {
                round.RoundId = RoundsTable.Create(round, dbConn).RoundId;
                CreateRoundLinks(round, entry.TournamentEntries);
            }

            return(tournament);
        }
 public List <ITournament> getAllTournaments()
 {
     return(TournamentTable.GetAll(dbConn));
 }