Esempio n. 1
0
        public async Task <List <PlayerStatsDto> > getPlayerStats()
        {
            var playersDto = new List <PlayerStatsDto>();
            var matchesWithTeamsAndPlayers = await _statsRepository.getMatchesWithTeamsAndPlayers();

            foreach (var match in matchesWithTeamsAndPlayers)
            {
                foreach (var player in match.TeamPlayerA)
                {
                    playersDto.Add(new PlayerStatsDto()
                    {
                        Draws  = (match.ScoreTeamA == match.ScoreTeamB) ? 1 : 0,
                        Losses = (match.ScoreTeamA < match.ScoreTeamB) ? 1 : 0,
                        Wins   = (match.ScoreTeamA > match.ScoreTeamB) ? 1 : 0,
                        Player = player.Player
                    });
                }
                foreach (var player in match.TeamPlayerB)
                {
                    playersDto.Add(new PlayerStatsDto()
                    {
                        Draws  = (match.ScoreTeamA == match.ScoreTeamB) ? 1 : 0,
                        Losses = (match.ScoreTeamA > match.ScoreTeamB) ? 1 : 0,
                        Wins   = (match.ScoreTeamA < match.ScoreTeamB) ? 1 : 0,
                        Player = player.Player
                    });
                }
            }
            playersDto = playersDto.OrderBy(p => p.Player.Id).ToList();
            var playerId          = playersDto[0].Player.Id;
            var playerLastDto     = new PlayerStatsDto();
            var playerLastDtoList = new List <PlayerStatsDto>();

            foreach (var player in playersDto)
            {
                if (playerId == player.Player.Id)
                {
                    playerLastDto.Player = player.Player;
                    playerLastDto.Draws  = playerLastDto.Draws + player.Draws;
                    playerLastDto.Wins   = playerLastDto.Wins + player.Wins;
                    playerLastDto.Losses = playerLastDto.Losses + player.Losses;
                }
                else
                {
                    playerLastDtoList.Add(playerLastDto);
                    playerLastDto        = new PlayerStatsDto();
                    playerId             = player.Player.Id;
                    playerLastDto.Player = player.Player;
                    playerLastDto.Draws  = playerLastDto.Draws + player.Draws;
                    playerLastDto.Wins   = playerLastDto.Wins + player.Wins;
                    playerLastDto.Losses = playerLastDto.Losses + player.Losses;
                }
            }
            playerLastDtoList.Add(playerLastDto);
            return(playerLastDtoList);
        }
Esempio n. 2
0
        public async Task GetPlayerStats_should_return_player_stats_when_player_exists()
        {
            var playerStatsDto = new PlayerStatsDto {
                TotalMatchesPlayed = 50
            };

            A.CallTo(() => _fakeMediator.Send(A <GetPlayerStatsQuery> ._, A <CancellationToken> ._)).Returns(playerStatsDto);

            var result = await _statsController.GetPlayerStats(string.Empty) as OkNegotiatedContentResult <PlayerStatsDto>;

            Assert.NotNull(result);
            Assert.AreEqual(50, result.Content.TotalMatchesPlayed);
        }
        private async Task <PlayerStatsDto> GetPlayerStatsAsync(string playerStatsLink)
        {
            var playerStatsPage = await this.context.OpenAsync(playerStatsLink);

            var cleanSheets   = playerStatsPage.QuerySelector(".statclean_sheet")?.TextContent.Trim().Replace(",", string.Empty);
            var goalsConc     = playerStatsPage.QuerySelector(".statgoals_conceded")?.TextContent.Trim().Replace(",", string.Empty);
            var fouls         = playerStatsPage.QuerySelector(".statfouls")?.TextContent.Trim().Replace(",", string.Empty);
            var shots         = playerStatsPage.QuerySelector(".stattotal_scoring_att")?.TextContent.Trim().Replace(",", string.Empty);
            var shotsOnTarget =
                playerStatsPage.QuerySelector(".statontarget_scoring_att")?.TextContent.Trim().Replace(",", string.Empty);
            var passes           = playerStatsPage.QuerySelector(".stattotal_pass")?.TextContent.Trim().Replace(",", string.Empty);
            var bigChanceCreated =
                playerStatsPage.QuerySelector(".statbig_chance_created")?.TextContent.Trim().Replace(",", string.Empty);
            var tackles     = playerStatsPage.QuerySelector(".stattotal_tackle")?.TextContent.Trim().Replace(",", string.Empty);
            var cleareances = playerStatsPage.QuerySelector(".stattotal_clearance")?.TextContent.Trim().Replace(",", string.Empty);
            var appearances = playerStatsPage.QuerySelector(".statappearances")?.TextContent.Trim();
            var wins        = playerStatsPage.QuerySelector(".statwins")?.TextContent.Trim();
            var losses      = playerStatsPage.QuerySelector(".statlosses")?.TextContent.Trim();
            var goals       = playerStatsPage.QuerySelector(".statgoals")?.TextContent.Trim();
            var assists     = playerStatsPage.QuerySelector(".statgoal_assist")?.TextContent.Trim();
            var yellowCards = playerStatsPage.QuerySelector(".statyellow_card")?.TextContent.Trim();
            var redCards    = playerStatsPage.QuerySelector(".statred_card")?.TextContent.Trim();

            var playerStatsTotalDto = new PlayerStatsDto
            {
                Appearances                       = appearances != null?int.Parse(appearances) : 0,
                                             Wins = wins != null?int.Parse(wins) : 0,
                                                        Losses                         = losses != null?int.Parse(losses) : 0,
                                                                                 Goals = goals != null?int.Parse(goals) : 0,
                                                                                             Assists = assists != null?int.Parse(assists) : 0,
                                                                                                           YellowCards = yellowCards != null?int.Parse(yellowCards) : 0,
                                                                                                                             RedCards = redCards != null?int.Parse(redCards) : 0,

                                                                                                                                            CleanSheets = cleanSheets != null?int.Parse(cleanSheets) : (int?)null,
                                                                                                                                                              GoalsConceded                                                             = goalsConc != null?int.Parse(goalsConc) : (int?)null,
                                                                                                                                                                                                          Fouls                         = fouls != null?int.Parse(fouls) : (int?)null,
                                                                                                                                                                                                                                  Shots = shots != null?int.Parse(shots) : (int?)null,
                                                                                                                                                                                                                                              ShotsOnTarget = shotsOnTarget != null?int.Parse(shotsOnTarget) : (int?)null,
                                                                                                                                                                                                                                                                  Passes = passes != null?int.Parse(passes) : (int?)null,
                                                                                                                                                                                                                                                                               BigChanceCreated = bigChanceCreated != null?int.Parse(bigChanceCreated) : (int?)null,
                                                                                                                                                                                                                                                                                                      Tackles = tackles != null?int.Parse(tackles) : (int?)null,
                                                                                                                                                                                                                                                                                                                    Clearences = cleareances != null?int.Parse(cleareances) : (int?)null,
            };

            return(playerStatsTotalDto);
        }