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