ActivEarth.Server.Service.Competition.ContestManager.DistributeContestReward C# (CSharp) Метод

DistributeContestReward() публичный статический Метод

Distributes the ActivityScore reward for a contest and deactivates it.
public static DistributeContestReward ( int contestId ) : void
contestId int ID of the contest to process.
Результат void
        public static void DistributeContestReward(int contestId)
        {
            Contest contest = ContestDAO.GetContestFromContestId(contestId, true, true);
            List<int> rewardsByBracket = ContestDAO.CalculateBracketRewards(contest);

            foreach (ContestTeam team in contest.Teams)
            {
                if (team.Members.Count > 0)
                {
                    float maxScore = team.Members.Max(m => m.Score);

                    foreach (ContestTeamMember member in team.Members)
                    {
                        int reward = (maxScore == 0 ? 0 :
                            (int)Math.Round(rewardsByBracket[team.Bracket] * (member.Score / maxScore)));
                        UserDAO.AddContestPoints(member.UserId, reward);
                    }
                }
            }

            contest.IsActive = false;
            contest.DeactivatedTime = DateTime.Now;
            ContestDAO.UpdateContest(contest);
        }