public SummonerGameStatsDto(CareerStatsDto stats) { this.Stats = stats; }
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); }