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); }
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)); }