public void addSpelerStats(int spelerId, float goalsPerGame, float goalsAgainstPerGame, float goalRatio, string favTeam, string scoredMostWith, string mostHatedPlayer, string mostPlayedAgainst, int seasonsPlayed, int seasonsPlayedCurrent, int highestDivision, int relegations) { StatsTeam ts = new StatsTeam(); ts.speler_id = spelerId; ts.goals_per_game = goalsPerGame; ts.goals_against_per_game = goalsAgainstPerGame; ts.goal_ratio = goalRatio; ts.favorit_team = favTeam; ts.scored_most_with = scoredMostWith; ts.most_played_against = mostPlayedAgainst; ts.seasons_played = seasonsPlayed; ts.seasons_played_current_division = seasonsPlayedCurrent; ts.highest_division = highestDivision; ts.relegations = relegations; f1.StatsTeams.Add(ts); f1.SaveChanges(); }
public StatsTeam RetrieveTeamStats(int teamId, int?competitionId, int?seasonId) { var matches = this.futbolRepository.RetrieveMatchesByTeam(teamId, competitionId, seasonId); if (matches == null || !matches.Any()) { return(null); } var team = matches.FirstOrDefault(f => f.HomeTeamId == teamId).HomeTeam; var wins = matches.SplitMatchesByResult(teamId, Result.Win); var losses = matches.SplitMatchesByResult(teamId, Result.Loss); var draws = matches.SplitMatchesByResult(teamId, Result.Draw); var teamStats = new StatsTeam { TeamName = team.TeamName, BiggestWin = wins.all.CalculateBiggestResult(), BiggestLoss = losses.all.CalculateBiggestResult(), BiggestDraw = draws.all.CalculateBiggestResult(), Record = new StatsRecord { GamesWon = wins.all.Count(), GamesLost = losses.all.Count(), GamesDrawn = draws.all.Count(), GoalsFor = (wins.all.Sum(s => s.MatchData.FTGoals_1) + losses.all.Sum(s => s.MatchData.FTGoals_2) + draws.all.Sum(s => s.MatchData.FTGoals_1)).Value, GoalsAgainst = (wins.all.Sum(s => s.MatchData.FTGoals_2) + losses.all.Sum(s => s.MatchData.FTGoals_1) + draws.all.Sum(s => s.MatchData.FTGoals_1)).Value }, HomeRecord = new StatsRecord { GamesWon = wins.home.Count(), GamesLost = losses.home.Count(), GamesDrawn = draws.home.Count(), GoalsFor = (wins.home.Sum(s => s.MatchData.FTGoals_1) + losses.home.Sum(s => s.MatchData.FTGoals_2) + draws.home.Sum(s => s.MatchData.FTGoals_1)).Value, GoalsAgainst = (wins.home.Sum(s => s.MatchData.FTGoals_2) + losses.home.Sum(s => s.MatchData.FTGoals_1) + draws.home.Sum(s => s.MatchData.FTGoals_1)).Value }, AwayRecord = new StatsRecord { GamesWon = wins.away.Count(), GamesLost = losses.away.Count(), GamesDrawn = draws.away.Count(), GoalsFor = (wins.away.Sum(s => s.MatchData.FTGoals_1) + losses.away.Sum(s => s.MatchData.FTGoals_2) + draws.away.Sum(s => s.MatchData.FTGoals_1)).Value, GoalsAgainst = (wins.away.Sum(s => s.MatchData.FTGoals_2) + losses.away.Sum(s => s.MatchData.FTGoals_1) + draws.away.Sum(s => s.MatchData.FTGoals_1)).Value }, MostGamesPlayedAgainst = matches.CalculateMostPlayed(team.TeamId), MostWinsAgainst = wins.all.CalculateMostPlayed(team.TeamId), MostLossesAgainst = losses.all.CalculateMostPlayed(team.TeamId), MostDrawsAgainst = draws.all.CalculateMostPlayed(team.TeamId) }; teamStats.BiggestWin.FirstMatch.MatchData = this.urlService.MatchData(teamStats.BiggestWin.FirstMatch.MatchId); teamStats.BiggestWin.LastMatch.MatchData = this.urlService.MatchData(teamStats.BiggestWin.LastMatch.MatchId); teamStats.BiggestLoss.FirstMatch.MatchData = this.urlService.MatchData(teamStats.BiggestLoss.FirstMatch.MatchId); teamStats.BiggestLoss.LastMatch.MatchData = this.urlService.MatchData(teamStats.BiggestLoss.LastMatch.MatchId); teamStats.BiggestDraw.FirstMatch.MatchData = this.urlService.MatchData(teamStats.BiggestDraw.FirstMatch.MatchId); teamStats.BiggestDraw.LastMatch.MatchData = this.urlService.MatchData(teamStats.BiggestDraw.LastMatch.MatchId); teamStats.MostGamesPlayedAgainst.Select(s => { s.AllMatches = this.urlService.AllMatchesTeams(s.Team_1, s.Team_2, competitionId, seasonId); return(s); }).ToList(); teamStats.MostWinsAgainst.Select(s => { s.AllMatches = this.urlService.AllMatchesTeams(s.Team_1, s.Team_2, competitionId, seasonId); return(s); }).ToList(); teamStats.MostLossesAgainst.Select(s => { s.AllMatches = this.urlService.AllMatchesTeams(s.Team_1, s.Team_2, competitionId, seasonId); return(s); }).ToList(); teamStats.MostDrawsAgainst.Select(s => { s.AllMatches = this.urlService.AllMatchesTeams(s.Team_1, s.Team_2, competitionId, seasonId); return(s); }).ToList(); return(teamStats); }