示例#1
0
 public SummonerGameStatsDto(CareerStatsDto stats)
 {
     this.Stats = stats;
 }
示例#2
0
        public async Task <IEnumerable <CareerStatsDto> > GetCareerStats(int playerId)
        {
            List <CareerStatsDto> careerStats = new List <CareerStatsDto>();
            var playerTeam = await _context.PlayerTeams.FirstOrDefaultAsync(x => x.PlayerId == playerId);

            var team = await _context.Teams.FirstOrDefaultAsync(x => x.Id == playerTeam.TeamId);

            var currentSeasonPlayerStats = await _context.PlayerStats.FirstOrDefaultAsync(x => x.PlayerId == playerId);

            var currentPlayoffStats = await _context.PlayerStatsPlayoffs.FirstOrDefaultAsync(x => x.PlayerId == playerId);

            var league = await _context.Leagues.FirstOrDefaultAsync();

            var pastSeasonStats = await _context.PlayerCareerStats.Where(x => x.PlayerId == playerId).ToListAsync();

            var pastSeasonPlayoffStats = await _context.PlayerCareerStatsPlayoffs.Where(x => x.PlayerId == playerId).ToListAsync();

            foreach (var season in pastSeasonStats)
            {
                var matchingPlayoffs = pastSeasonPlayoffStats.Find(x => x.SeasonId == season.SeasonId);

                if (matchingPlayoffs == null)
                {
                    CareerStatsDto dto = new CareerStatsDto
                    {
                        PlayerId             = season.PlayerId,
                        SeasonId             = season.SeasonId,
                        TeamName             = season.Team,
                        GamesStats           = season.GamesPlayed,
                        MinutesStats         = season.Minutes,
                        FgmStats             = season.FieldGoalsMade,
                        FgaStats             = season.FieldGoalsAttempted,
                        ThreeFgmStats        = season.ThreeFieldGoalsMade,
                        ThreeFgaStats        = season.ThreeFieldGoalsAttempted,
                        FtmStats             = season.FreeThrowsMade,
                        FtaStats             = season.FreeThrowsAttempted,
                        OrebsStats           = season.ORebs,
                        DrebsStats           = season.DRebs,
                        AstStats             = season.Assists,
                        StlStats             = season.Steals,
                        BlkStats             = season.Blocks,
                        FlsStats             = season.Fouls,
                        ToStats              = season.Turnovers,
                        PtsStats             = season.Points,
                        PlayoffGamesStats    = matchingPlayoffs.GamesPlayed,
                        PlayoffMinutesStats  = matchingPlayoffs.Minutes,
                        PlayoffFgmStats      = matchingPlayoffs.FieldGoalsMade,
                        PlayoffFgaStats      = matchingPlayoffs.FieldGoalsMade,
                        PlayoffThreeFgmStats = matchingPlayoffs.ThreeFieldGoalsMade,
                        PlayoffThreeFgaStats = matchingPlayoffs.ThreeFieldGoalsAttempted,
                        PlayoffFtmStats      = matchingPlayoffs.FreeThrowsMade,
                        PlayoffFtaStats      = matchingPlayoffs.FreeThrowsAttempted,
                        PlayoffOrebsStats    = matchingPlayoffs.ORebs,
                        PlayoffDrebsStats    = matchingPlayoffs.DRebs,
                        PlayoffAstStats      = matchingPlayoffs.Assists,
                        PlayoffStlStats      = matchingPlayoffs.Steals,
                        PlayoffBlkStats      = matchingPlayoffs.Blocks,
                        PlayoffFlsStats      = matchingPlayoffs.Fouls,
                        PlayoffToStats       = matchingPlayoffs.Turnovers,
                        PlayoffPtsStats      = matchingPlayoffs.Points
                    };
                    careerStats.Add(dto);
                }
                else
                {
                    CareerStatsDto dto = new CareerStatsDto
                    {
                        PlayerId             = season.PlayerId,
                        SeasonId             = season.SeasonId,
                        TeamName             = season.Team,
                        GamesStats           = season.GamesPlayed,
                        MinutesStats         = season.Minutes,
                        FgmStats             = season.FieldGoalsMade,
                        FgaStats             = season.FieldGoalsAttempted,
                        ThreeFgmStats        = season.ThreeFieldGoalsMade,
                        ThreeFgaStats        = season.ThreeFieldGoalsAttempted,
                        FtmStats             = season.FreeThrowsMade,
                        FtaStats             = season.FreeThrowsAttempted,
                        OrebsStats           = season.ORebs,
                        DrebsStats           = season.DRebs,
                        AstStats             = season.Assists,
                        StlStats             = season.Steals,
                        BlkStats             = season.Blocks,
                        FlsStats             = season.Fouls,
                        ToStats              = season.Turnovers,
                        PtsStats             = season.Points,
                        PlayoffGamesStats    = 0,
                        PlayoffMinutesStats  = 0,
                        PlayoffFgmStats      = 0,
                        PlayoffFgaStats      = 0,
                        PlayoffThreeFgmStats = 0,
                        PlayoffThreeFgaStats = 0,
                        PlayoffFtmStats      = 0,
                        PlayoffFtaStats      = 0,
                        PlayoffOrebsStats    = 0,
                        PlayoffDrebsStats    = 0,
                        PlayoffAstStats      = 0,
                        PlayoffStlStats      = 0,
                        PlayoffBlkStats      = 0,
                        PlayoffFlsStats      = 0,
                        PlayoffToStats       = 0,
                        PlayoffPtsStats      = 0
                    };
                    careerStats.Add(dto);
                }
            }

            // Now need to add the current season
            if (currentSeasonPlayerStats != null)
            {
                if (currentPlayoffStats == null)
                {
                    CareerStatsDto dto = new CareerStatsDto
                    {
                        PlayerId             = currentSeasonPlayerStats.PlayerId,
                        SeasonId             = league.Year,
                        TeamName             = team.Mascot,
                        GamesStats           = currentSeasonPlayerStats.GamesPlayed,
                        MinutesStats         = currentSeasonPlayerStats.Minutes,
                        FgmStats             = currentSeasonPlayerStats.FieldGoalsMade,
                        FgaStats             = currentSeasonPlayerStats.FieldGoalsAttempted,
                        ThreeFgmStats        = currentSeasonPlayerStats.ThreeFieldGoalsMade,
                        ThreeFgaStats        = currentSeasonPlayerStats.ThreeFieldGoalsAttempted,
                        FtmStats             = currentSeasonPlayerStats.FreeThrowsMade,
                        FtaStats             = currentSeasonPlayerStats.FreeThrowsAttempted,
                        OrebsStats           = currentSeasonPlayerStats.ORebs,
                        DrebsStats           = currentSeasonPlayerStats.DRebs,
                        AstStats             = currentSeasonPlayerStats.Assists,
                        StlStats             = currentSeasonPlayerStats.Steals,
                        BlkStats             = currentSeasonPlayerStats.Blocks,
                        FlsStats             = currentSeasonPlayerStats.Fouls,
                        ToStats              = currentSeasonPlayerStats.Turnovers,
                        PtsStats             = currentSeasonPlayerStats.Points,
                        PlayoffGamesStats    = 0,
                        PlayoffMinutesStats  = 0,
                        PlayoffFgmStats      = 0,
                        PlayoffFgaStats      = 0,
                        PlayoffThreeFgmStats = 0,
                        PlayoffThreeFgaStats = 0,
                        PlayoffFtmStats      = 0,
                        PlayoffFtaStats      = 0,
                        PlayoffOrebsStats    = 0,
                        PlayoffDrebsStats    = 0,
                        PlayoffAstStats      = 0,
                        PlayoffStlStats      = 0,
                        PlayoffBlkStats      = 0,
                        PlayoffFlsStats      = 0,
                        PlayoffToStats       = 0,
                        PlayoffPtsStats      = 0
                    };
                    careerStats.Add(dto);
                }
                else
                {
                    CareerStatsDto dto = new CareerStatsDto
                    {
                        PlayerId             = currentSeasonPlayerStats.PlayerId,
                        SeasonId             = league.Year,
                        TeamName             = team.Mascot,
                        GamesStats           = currentSeasonPlayerStats.GamesPlayed,
                        MinutesStats         = currentSeasonPlayerStats.Minutes,
                        FgmStats             = currentSeasonPlayerStats.FieldGoalsMade,
                        FgaStats             = currentSeasonPlayerStats.FieldGoalsAttempted,
                        ThreeFgmStats        = currentSeasonPlayerStats.ThreeFieldGoalsMade,
                        ThreeFgaStats        = currentSeasonPlayerStats.ThreeFieldGoalsAttempted,
                        FtmStats             = currentSeasonPlayerStats.FreeThrowsMade,
                        FtaStats             = currentSeasonPlayerStats.FreeThrowsAttempted,
                        OrebsStats           = currentSeasonPlayerStats.ORebs,
                        DrebsStats           = currentSeasonPlayerStats.DRebs,
                        AstStats             = currentSeasonPlayerStats.Assists,
                        StlStats             = currentSeasonPlayerStats.Steals,
                        BlkStats             = currentSeasonPlayerStats.Blocks,
                        FlsStats             = currentSeasonPlayerStats.Fouls,
                        ToStats              = currentSeasonPlayerStats.Turnovers,
                        PtsStats             = currentSeasonPlayerStats.Points,
                        PlayoffGamesStats    = currentPlayoffStats.GamesPlayed,
                        PlayoffMinutesStats  = currentPlayoffStats.Minutes,
                        PlayoffFgmStats      = currentPlayoffStats.FieldGoalsMade,
                        PlayoffFgaStats      = currentPlayoffStats.FieldGoalsAttempted,
                        PlayoffThreeFgmStats = currentPlayoffStats.ThreeFieldGoalsMade,
                        PlayoffThreeFgaStats = currentPlayoffStats.ThreeFieldGoalsAttempted,
                        PlayoffFtmStats      = currentPlayoffStats.FreeThrowsMade,
                        PlayoffFtaStats      = currentPlayoffStats.FreeThrowsAttempted,
                        PlayoffOrebsStats    = currentPlayoffStats.ORebs,
                        PlayoffDrebsStats    = currentPlayoffStats.DRebs,
                        PlayoffAstStats      = currentPlayoffStats.Assists,
                        PlayoffStlStats      = currentPlayoffStats.Steals,
                        PlayoffBlkStats      = currentPlayoffStats.Blocks,
                        PlayoffFlsStats      = currentPlayoffStats.Fouls,
                        PlayoffToStats       = currentPlayoffStats.Turnovers,
                        PlayoffPtsStats      = currentPlayoffStats.Points
                    };
                    careerStats.Add(dto);
                }
            }

            return(careerStats);
        }