public ActionResult ViewEmployeeList()
 {
     using (var employeerepo = new EmployeeRepository())
     {
         var model = new EmployeeViewModel();
         model.Employees = employeerepo.ViewEmployees();
         return View(model);
     }
 }
        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);
        }