コード例 #1
0
 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);
                         }
                     }
                 }
             }
         }
     }
 }
コード例 #2
0
        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();
        }