private static void AdvanceWinner(List <MatchupModel> models, TournamentModel tournament) { foreach (MatchupModel m in models) { foreach (List <MatchupModel> round in tournament.Rounds) { foreach (MatchupModel rm in round) { foreach (MatchupEntryModel mem in rm.Entries) { if (mem.ParentMatchup != null) { if (mem.ParentMatchup.Id == m.Id) { mem.TeamCompeting = m.Winner; GlobalConfig.Connections.UpdateMatchup(rm); } } } } } } }
private static void CompleteTournament(TournamentModel tournament) { GlobalConfig.Connections.CompleteTournament(tournament); TeamModel winner = tournament.Rounds.Last().First().Winner; TeamModel looser = tournament.Rounds.Last().First().Entries.First(i => i.TeamCompeting != winner).TeamCompeting; decimal winnerPrize = 0; decimal looserPrize = 0; if (tournament.Prizes.Count > 0) { decimal totalIncome = tournament.EnteredTeams.Count * tournament.EnrtyFee; PrizeModel firstPlace = tournament.Prizes.FirstOrDefault(i => i.PlaceNumber == 1); PrizeModel secondPlace = tournament.Prizes.FirstOrDefault(i => i.PlaceNumber == 2); if (firstPlace != null) { winnerPrize = firstPlace.CalculatePrize(totalIncome); } if (secondPlace != null) { looserPrize = secondPlace.CalculatePrize(totalIncome); } } string subject = ""; StringBuilder body = new StringBuilder(); subject = $"In a tournament {tournament.TournamentName}, { winner.TeamName } is a winner."; body.AppendLine("<h1>Here is a winner!</h1>"); body.Append("<p>Our Congrats! </p>"); body.Append("<br />"); if (winnerPrize > 0) { body.Append($"<p>Winner {winner.TeamName}, receive {winnerPrize}</p>"); } if (looserPrize > 0) { body.Append($"<p>Looser {looser.TeamName}, receive {looserPrize}</p>"); } body.AppendLine("<p>Thanks for gaming. GoodBye!</p>"); body.AppendLine("~Tournament Application"); List <string> bcc = new List <string>(); foreach (TeamModel team in tournament.EnteredTeams) { foreach (PersonModel person in team.TeamMembers) { if (person.Email.Length > 0) { bcc.Add(person.Email); } } } EmailLogic.SendEmail(new List <string>(), bcc, subject, body.ToString()); tournament.TournamentComplete(); }