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);
}