public void UpdateLeaderboard(List<Leaderboard> leaderboard, Leaderboard playerFields) { foreach (var oneentry in leaderboard) { if (oneentry.PlayerId == playerFields.PlayerId) { oneentry.GamesPlayed += playerFields.GamesPlayed; oneentry.GamesWon += playerFields.GamesWon; oneentry.GamesDrawn += playerFields.GamesDrawn; oneentry.GamesLost += playerFields.GamesLost; } } }
public ActionResult ViewLeaderboard() { var model = new CompleteLeaderboardViewModel(); model.AllLeaderboardEntries = new List<LeaderboardViewModel>(); var leaderBoard = new Leaderboard(); var leaderboardentries = new List<Leaderboard>(); using (var employeerepo = new EmployeeRepository()) { leaderboardentries = leaderBoard.CreateBlankLeaderboard(employeerepo.ViewEmployees()); } using (var matchrepo = new MatchRepository()) { var matches = new List<Match>(matchrepo.GetAllMatches()); foreach (var match in matches) { leaderBoard.UpdateLeaderboard(leaderboardentries, leaderBoard.GetLeaderboardEntry(match.WinnerId, match.Player1Id)); leaderBoard.UpdateLeaderboard(leaderboardentries, leaderBoard.GetLeaderboardEntry(match.WinnerId, match.Player2Id)); } } leaderboardentries = leaderboardentries.OrderByDescending(x => x.GamesWon).ThenByDescending(x => x.GamesDrawn).ThenBy(x => x.GamesLost).ToList(); foreach (var leaderboardentry in leaderboardentries) { var oneleaderboardentry = new LeaderboardViewModel(); oneleaderboardentry.Player = new Employee(); oneleaderboardentry.LeaderboardPlayer = new Leaderboard(); using (var employeerepo = new EmployeeRepository()) { oneleaderboardentry.Player = employeerepo.GetEmployeeById(leaderboardentry.PlayerId); } oneleaderboardentry.LeaderboardPlayer.PlayerId = leaderboardentry.PlayerId; oneleaderboardentry.LeaderboardPlayer.GamesPlayed = leaderboardentry.GamesPlayed; oneleaderboardentry.LeaderboardPlayer.GamesWon = leaderboardentry.GamesWon; oneleaderboardentry.LeaderboardPlayer.GamesDrawn = leaderboardentry.GamesDrawn; oneleaderboardentry.LeaderboardPlayer.GamesLost = leaderboardentry.GamesLost; model.AllLeaderboardEntries.Add(oneleaderboardentry); } return View(model); }
public Leaderboard GetLeaderboardEntry(int winnerId, int playerId) { var leaderboardEntry = new Leaderboard(); leaderboardEntry.PlayerId = playerId; leaderboardEntry.GamesPlayed = 1; if (playerId == winnerId) leaderboardEntry.GamesWon = 1; else if (winnerId == -1) leaderboardEntry.GamesDrawn = 1; else leaderboardEntry.GamesLost = 1; return leaderboardEntry; }