private void LoadDataOnPage()
{
Contest contest = ContestDAO.GetContestFromContestId(contestId, true, false);
string contestState = contest.GetContestState();
bool isCompeting = TeamDAO.UserCompetingInContest(user.UserID, contestId);
ContestName.Text = contest.Name;
ContestDescription.Text = contest.Description;
if (contestState == "SIGN-UP")
{
LoadContestSignupData(contest, isCompeting);
}
else
{
ContestStatsTable.Visible = true;
TotalTeamsLabel.Text = contest.Teams.Count.ToString();
TotalRewardLabel.Text = contest.Reward.ToString();
if (contest.Mode == ContestEndMode.TimeBased)
{
ProgressGraph.PopulateProgressGraph(contest.StartTime, contest.EndTime.Value);
}
else
{
ProgressGraph.PopulateProgressGraph(
(contest.Teams.Count >= 1 ? contest.Teams[0] : null),
contest.EndValue.Value,
contest.FormatString);
}
if (isCompeting)
{
ContestTeam usersTeam = TeamDAO.GetTeamFromUserIdAndContestId(user.UserID, contest.ID, false);
List<ContestTeam> teamsToDisplay = ContestManager.GetTeamsToDisplay(usersTeam, contest);
Color[] backColors = { Color.FromArgb(34, 139, 34), Color.White };
Color[] textColors = { Color.White, Color.Black };
List<int> rewards = ContestDAO.CalculateBracketRewards(contest);
ContestLeaderBoard.PopulateLeaderBoard(teamsToDisplay, backColors, textColors, contest.FormatString, rewards);
ContestLeaderBoard.Visible = true;
ContestSignUpPanel.Visible = false;
}
else
{
ContestSignUpPanel.Visible = true;
if (contest.Type == ContestType.Group)
{
if (GroupSelection.Items.Count == 0)
{
List<Group> groups = GroupDAO.GetAllGroupsByOwner(user);
foreach (Group group in groups)
{
GroupSelection.Items.Add(group.Name);
}
if (groups.Count != 0)
{
btnJoinContest.Visible = true;
GroupSelection.Visible = true;
}
else
{
SignUpErrorMessage.Text = "This is a group contest. In order to join a group contest, you must "
+ "be a group leader of at least one group. If you are part of a group and not the leader, ask your group leader to add "
+ "the group to this contest.";
SignUpErrorMessage.Visible = true;
}
}
}
else
{
btnJoinContest.Visible = true;
}
}
}
}