private Models.LeaderboardViewModel GetLeaderboardViewModel() { TeamRepository teamRepo = new TeamRepository(); List <TeamScore> teamScores = new List <TeamScore>(); List <Team> teams = teamRepo.GetAll().Where(i => !i.IsAdmin).ToList(); foreach (var team in teams) { List <Scorecard> scores = getTeamScore(team.ID).scores.ToList(); int summedScore = GlobalRoutines.SumScores(scores); int thru = scores.Where(s => s.Value > 0).Count(); teamScores.Add(new TeamScore { TeamName = team.Name, Score = summedScore, ScoreDisplay = summedScore == 0 ? "Even" : summedScore.ToString(), Thru = thru > 0 ? thru.ToString() : "-" }); } Models.LeaderboardViewModel vm = new Models.LeaderboardViewModel() { TeamScores = teamScores.OrderBy(s => s.Score) }; return(vm); }
public void Connect(int teamID) { var id = Context.ConnectionId; if (ConnectedUsers.Count(x => x.ConnectionId == id) == 0) { ConnectedUsers.Add(new UserDetail { ConnectionId = id, TeamID = teamID }); Models.ScorecardViewModel scvm = getTeamScore(teamID); Clients.Caller.updateScores(scvm); Models.LeaderboardViewModel lbvm = GetLeaderboardViewModel(); Clients.Caller.updateLeaderboard(lbvm); } }