예제 #1
0
        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);
        }