public async Task <List <PlayerRanking> > CreateListOfPlayerRanksByProfileId(int id, IPlayerRepository _playerRepository, IRankingRepository _rankingRepository) { IEnumerable <Player> allPlayers = new List <Player>(); allPlayers = await _playerRepository.ListAllAsync(); List <PlayerRanking> rankingsToReturn = new List <PlayerRanking>(); foreach (Player player in allPlayers) { var playerRankingCreated = await GetByPlayerIdAndProfileIdAsync(player.PlayerId, 2025); PlayerRanking playerRankingToAdd = new PlayerRanking(); playerRankingToAdd.DynastyPosRank = playerRankingCreated.DynastyPosRank; playerRankingToAdd.DynastyRank = playerRankingCreated.DynastyRank; playerRankingToAdd.isDefault = false; playerRankingToAdd.Player = playerRankingCreated.Player; playerRankingToAdd.PlayerId = playerRankingCreated.PlayerId; playerRankingToAdd.PlayerRank = playerRankingCreated.PlayerRank; playerRankingToAdd.PosRank = playerRankingCreated.PosRank; playerRankingToAdd.PprPosRank = playerRankingCreated.PprPosRank; playerRankingToAdd.PprRank = playerRankingCreated.PprRank; playerRankingToAdd.TestUserProfileId = id; //rankingsToReturn.Add(playerRankingCreated); await _rankingRepository.AddAsync(playerRankingToAdd); } return(rankingsToReturn); }
public async Task <List <PlayerRankingModel> > CreatePlayerViewModel(IRankingRepository rankingRepository, IPlayerRepository playerRepository, int profileID) { int defaultProfileID = 2025; IEnumerable <Player> allPlayers = await playerRepository.ListAllAsync(); IEnumerable <PlayerRanking> allRanksofProfile = await rankingRepository.GetAllRanksByProfileId(profileID); List <PlayerRankingModel> playerRankingModelList = new List <PlayerRankingModel>(); foreach (Player player in allPlayers) { PlayerRankingModel playerRankingModelToAdd = new PlayerRankingModel(); PlayerRanking PR = allRanksofProfile.FirstOrDefault(x => x.PlayerId == player.PlayerId); playerRankingModelToAdd.playerRanking = PR; playerRankingModelToAdd.playerToRank = player; playerRankingModelToAdd.playerRanking.TestUserProfileId = profileID; playerRankingModelList.Add(playerRankingModelToAdd); } if (playerRankingModelList.Count > 0) { return(playerRankingModelList); } else { foreach (Player player in allPlayers) { PlayerRankingModel playerRankingModelToAdd = new PlayerRankingModel(); try { PlayerRanking PR = await rankingRepository.GetByPlayerIdAsync(player.PlayerId); if (PR.TestUserProfileId == defaultProfileID) { PR.TestUserProfileId = profileID; playerRankingModelToAdd.playerRanking = PR; await _rankingRepository.AddAsync(PR); } } catch { PlayerRanking PR = new PlayerRanking { PlayerId = player.PlayerId }; playerRankingModelToAdd.playerRanking = PR; } finally { playerRankingModelToAdd.playerToRank = player; playerRankingModelList.Add(playerRankingModelToAdd); } } return(playerRankingModelList); } }
public static async Task AddPlayerRanking(Player returnedPlayer, IRankingRepository rankingRepository, IPlayerRepository playerRepository) { if (await rankingRepository.GetByPlayerIdAsync(returnedPlayer.PlayerId) != null) { PlayerRanking playerRankingToDelete = await rankingRepository.GetByPlayerIdAsync(returnedPlayer.PlayerId); await rankingRepository.DeleteAsync(playerRankingToDelete); Console.Write("Previous Ranking Deleted"); } PlayerRanking playerRankingToAdd = new PlayerRanking(); playerRankingToAdd.PlayerId = returnedPlayer.PlayerId; IEnumerable <PlayerRanking> allPlayerRanks = await rankingRepository.ListAllAsync(); IEnumerable <Player> allPlayers = await playerRepository.ListAllAsync(); if (allPlayerRanks.Count() > 0) { var highestRankedPlayer = allPlayerRanks.Max(x => x.PlayerRank); var highestPprPlayer = allPlayerRanks.Max(x => x.PprRank); var highestDynastyPlayer = allPlayerRanks.Max(x => x.DynastyRank); playerRankingToAdd.PlayerRank = highestRankedPlayer + 1; playerRankingToAdd.PprRank = highestPprPlayer + 1; playerRankingToAdd.DynastyRank = highestDynastyPlayer + 1; CalculatePlayerRanking(returnedPlayer, allPlayerRanks, allPlayers, playerRankingToAdd); } else { playerRankingToAdd.PlayerRank = 1; playerRankingToAdd.PosRank = 1; playerRankingToAdd.PprRank = 1; playerRankingToAdd.PprPosRank = 1; playerRankingToAdd.DynastyRank = 1; playerRankingToAdd.DynastyPosRank = 1; } playerRankingToAdd.TestUserProfileId = 2025; playerRankingToAdd.isDefault = true; await rankingRepository.AddAsync(playerRankingToAdd); }