コード例 #1
0
        private IEnumerable <LeaderboardUserModel> prepareLeaderBoard(string gameId)
        {
            // this is when calculating overall(time) & game id didnt checked
            IEnumerable <UserGame>             userGameList    = _userGameService.GetAll();
            IEnumerable <MonthlyWinners>       monthlyWinners  = _monthlyWinnersService.GetAll();
            IEnumerable <LeaderboardUserModel> leaderboardData = _userService.GetAllActive()
                                                                 .Select(user => {
                int wins   = _userGameService.getWinsByIdAndGameId(userGameList, user.Id, gameId);
                int losses = _userGameService.getLosesByIdAndGameId(userGameList, user.Id, gameId);
                int draws  = _userGameService.getDrawsByIdAndGameId(userGameList, user.Id, gameId);
                IEnumerable <UserGame> userSpecificUGList = userGameList.Where(userGame =>
                                                                               (userGame.User_01_Id.ToString() == user.Id) ||
                                                                               userGame.User_02_Id.ToString() == user.Id);

                return(new LeaderboardUserModel
                {
                    UserId = user.Id,
                    ProfileImageUrl = user.ProfileImageUrl,
                    UserName = user.UserName,
                    Wins = wins.ToString(),
                    Draws = draws.ToString(),
                    Loses = losses.ToString(),
                    Ratio = _userGameService.calculateWinRatio(wins, losses).ToString(),
                    Points = _userGameService.getUserPoint(userSpecificUGList, user.Id, gameId).ToString(),
                    MonthlyWins = _monthlyWinnersService.GetPastMonthAwardWithIdAndGameId(monthlyWinners, user.Id, gameId),
                    GameId = Convert.ToInt32(gameId)
                });
            });

            return(leaderboardData);
        }
コード例 #2
0
        public IActionResult Profile(string userID)
        {
            var MatchHistoryData = _userGameService.getUserGamesByUserId(userID);

            IEnumerable <UserGameListingModel> MatchHistory = MatchHistoryData.Select(userGame =>
            {
                UserGameListingModel ugameModel = new UserGameListingModel
                {
                    Id = userGame.Id,
                    //Game played Date
                    GamePlayedOn = userGame.GamePlayedOn,

                    //Players detail
                    User_01      = _userService.GetById(userGame.User_01_Id),
                    User_01_Team = userGame.User_01_Team,
                    User_02      = _userService.GetById(userGame.User_02_Id),
                    User_02_Team = userGame.User_02_Team,

                    // Game Name
                    GameName = userGame.GamePlayed.GameName,

                    Apologised      = userGame.Apologised,
                    NeedToApologise = (Math.Abs(userGame.GameScoreUser01 - userGame.GameScoreUser02) >= 5) ? true : false,

                    GamePlayedId = userGame.GamePlayed.Id,

                    // Score
                    GameScore = userGame.GameScoreUser01 + " : " + userGame.GameScoreUser02,

                    // Winner, “USER_01_Id”, “USER_02_Id”, “DRAW”
                    Winner = userGame.Winner,
                };
                return(ugameModel);
            }).OrderByDescending(game => game.Id);

            ApplicationUser        user         = _userService.GetById(userID);
            IEnumerable <UserGame> userGameList = _userGameService.GetAll();
            Dictionary <string, LeaderboardUserModel> gameStats = _gameService.GetAll()
                                                                  .Select(Game => new KeyValuePair <string, LeaderboardUserModel>(Game.GameName, new LeaderboardUserModel
            {
                UserId      = user.Id,
                UserName    = user.UserName,
                Wins        = _userGameService.getWinsByIdAndGameId(userGameList, user.Id, Game.Id.ToString()).ToString(),
                Draws       = _userGameService.getDrawsByIdAndGameId(userGameList, user.Id, Game.Id.ToString()).ToString(),
                Loses       = _userGameService.getLosesByIdAndGameId(userGameList, user.Id, Game.Id.ToString()).ToString(),
                Ratio       = _userGameService.getRatioWithIdAndGameId(userGameList, user.Id, Game.Id.ToString()).ToString(),
                MonthlyWins = _monthlyWinnersService.GetPastMonthAwardWithIdAndGameId(user.Id, Game.Id.ToString())
            })).ToDictionary(x => x.Key, x => x.Value);

            gameStats.Add("Overall", new LeaderboardUserModel
            {
                UserId      = user.Id,
                UserName    = user.UserName,
                Wins        = _userGameService.getWinsByIdAndGameId(userGameList, user.Id, "").ToString(),
                Draws       = _userGameService.getDrawsByIdAndGameId(userGameList, user.Id, "").ToString(),
                Loses       = _userGameService.getLosesByIdAndGameId(userGameList, user.Id, "").ToString(),
                Ratio       = _userGameService.getRatioWithIdAndGameId(userGameList, user.Id, "").ToString(),
                MonthlyWins = _monthlyWinnersService.GetPastMonthAwardWithIdAndGameId(user.Id, "overall")
            });


            var model = new UserProfileModel
            {
                User          = _userService.GetById(userID),
                UsersGames    = MatchHistory,
                GameStatistcs = gameStats
            };

            return(View(model));
        }