Esempio n. 1
0
 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);
        }
Esempio n. 3
0
        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;
        }