コード例 #1
0
        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();
        }
コード例 #2
0
ファイル: StatsService.cs プロジェクト: DanTHulse/Futbol-API
        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);
        }