public static void UpdateTeamScore(int teamId)
{
ContestTeam team = TeamDAO.GetTeamFromTeamId(teamId, true);
Contest contest = ContestDAO.GetContestFromContestId(team.ContestId, false, false);
if (team.IsLocked)
{
Statistic statistic = ContestDAO.GetStatisticFromContestId(team.ContestId);
float total = 0;
foreach (ContestTeamMember member in team.Members)
{
member.Score = TeamDAO.CalculateUserScore(member.UserId, member.InitialScore, statistic);
total += member.Score;
}
team.Score = total;
TeamDAO.UpdateTeam(team);
ContestDAO.UpdateContestStandings(team.ContestId);
if (contest.Mode == ContestEndMode.GoalBased)
{
if (team.Score >= contest.EndValue)
{
ContestManager.DistributeContestReward(team.ContestId);
}
}
}
}