예제 #1
0
        public PredictionModule()
        {
            Get[SharedRoutes.CurrentPredictions] = parameters => {
                var seasonId    = (int)parameters.seasonId;
                var predictions = analysisRepo.GetSeasonPredictions(seasonId).Where(p => p.IsFinished == false)
                                  .Select(Mapper.Map <PredictionDto>).ToList();
                var seasonDb = leagueRepo.GetLeagueSeasonById(seasonId);
                var result   = new PredictionsResponseDto
                {
                    Predictions    = predictions,
                    LeagueId       = seasonDb.League.LeagueId,
                    LeagueSeasonId = seasonId,
                    StartYear      = seasonDb.StartYear
                };
                return(Response.AsJson(result));
            };

            Get[SharedRoutes.AllPredictions] = parameters => {
                var seasonId    = (int)parameters.seasonId;
                var predictions = analysisRepo.GetSeasonPredictions(seasonId).Select(Mapper.Map <PredictionDto>).ToList();
                var seasonDb    = leagueRepo.GetLeagueSeasonById(seasonId);
                var result      = new PredictionsResponseDto
                {
                    Predictions    = predictions,
                    LeagueId       = seasonDb.League.LeagueId,
                    LeagueSeasonId = seasonId,
                    StartYear      = seasonDb.StartYear
                };
                return(Response.AsJson(result));
            };

            Get[SharedRoutes.FinishedPredictions] = parameters => {
                var seasonId    = (int)parameters.seasonId;
                var predictions = analysisRepo.GetSeasonPredictions(seasonId).Where(p => p.IsFinished == true)
                                  .Select(Mapper.Map <PredictionDto>).ToList();
                var seasonDb = leagueRepo.GetLeagueSeasonById(seasonId);
                var result   = new PredictionsResponseDto
                {
                    Predictions    = predictions,
                    LeagueId       = seasonDb.League.LeagueId,
                    LeagueSeasonId = seasonId,
                    StartYear      = seasonDb.StartYear
                };
                return(Response.AsJson(result));
            };
        }
예제 #2
0
        public LeagueRoundModule()
        {
            Get[SharedRoutes.SeasonAllRounds] = parameters => {
                var seasonId = (int)parameters.seasonId;
                var rounds = leagueRepo.GetCurrentSeasonRounds(seasonId).Select(Mapper.Map<RoundDto>).ToList();
                return Response.AsJson(rounds);
            };

            Get[SharedRoutes.RoundGames] = parameters => {
                var seasonId = (int)parameters.seasonId;
                var roundId = (int)parameters.roundId;
                var gameRoundsDb = leagueRepo.GetAllRoundGames(roundId);
                if (gameRoundsDb.Any(g => g.SeasonRound.LeagueSeasonId != seasonId))
                    return HttpStatusCode.Conflict;
                var games = gameRoundsDb.Select(Mapper.Map<GameDto>).ToList();
                return Response.AsJson(games);
            };

            Get[SharedRoutes.CurrentRoundGames] = parameters => {
                var seasonId = (int)parameters.seasonId;
                var season = leagueRepo.GetLeagueSeasonById(seasonId);
                var currentRound = leagueRepo.GetCurrentSeasonRound(season);
                var gameRoundsDb = leagueRepo.GetAllRoundGames(currentRound.RoundId);
                if (gameRoundsDb.Any(g => g.SeasonRound.LeagueSeasonId != seasonId))
                    return HttpStatusCode.Conflict;
                var games = gameRoundsDb.Select(Mapper.Map<GameDto>).ToList();
                return Response.AsJson(games);
            };

            Get[SharedRoutes.SeasonRoundsTable] = parameters => {
                var seasonId = (int)parameters.seasonId;
                var rounds = leagueRepo.GetCurrentSeasonRounds(seasonId).Select(Mapper.Map<RoundStatsDto>).OrderBy(r => r.RoundNumber).ToList();
                var roundTable = new RoundsTable
                {
                    LeagueSeasonId = seasonId,
                    IsFinished = rounds.Count >= 38,
                    Rounds = rounds,
                    StartDate = rounds.FirstOrDefault()?.StartDate,
                    EndDate = rounds.LastOrDefault()?.EndDate,
                };
                return Response.AsJson(roundTable);
            };

            Get[SharedRoutes.SeasonRoundsStats] = parameters => {
                var seasonId = (int)parameters.seasonId;
                var averageRoundStats = Mapper.Map<SeasonAverageRoundDto>(analysisRepo.GetAverageRoundStats(seasonId));
                return Response.AsJson(averageRoundStats);
            };

        }
        public LeagueSeasonModule()
        {
            Get[SharedRoutes.StandingTable] = parameters => {
                var seasonId      = (int)parameters.seasonId;
                var season        = leagueRepo.GetLeagueSeasonById(seasonId);
                var seasonTeams   = analysisRepo.GetSeasonTeams(seasonId);
                var teamsDb       = leagueRepo.GetFootballTeamsByIds(seasonTeams.Select(t => t.FootballTeamId).ToArray());
                var standingTable = new StandingTableDto
                {
                    LeagueSeasonId = seasonId,
                    StartDate      = season.StartDate,
                    EndDate        = season.EndDate,
                    IsFinished     = season.EndDate < DateTime.Now,
                    Teams          = seasonTeams.Select(Mapper.Map <LeagueSeasonTeamDto>).OrderBy(t => t.TablePlace).ToList()
                };
                foreach (var team in standingTable.Teams)
                {
                    var teamDb = teamsDb.Where(t => t.TeamId == team.FootballTeamId).FirstOrDefault();
                    team.FootballTeamName = teamDb.Name;
                }
                return(Response.AsJson(standingTable));
            };

            Get[SharedRoutes.SeasonGames] = parameters => {
                var seasonId    = (int)parameters.seasonId;
                var seasonGames = leagueRepo.GetAllSeasonGames(seasonId).Select(Mapper.Map <GameDto>).ToList();
                return(Response.AsJson(seasonGames));
            };

            Get[SharedRoutes.GameStats] = parameters => {
                var seasonId = (int)parameters.seasonId;
                var matchId  = (int)parameters.id;
                if (!leagueRepo.GetAllSeasonGames(seasonId).Any(g => g.GameId == matchId))
                {
                    return(HttpStatusCode.NotFound);
                }
                bool onlyCreated;
                var  gameStatsDb = leagueRepo.GetGameStats(matchId, out onlyCreated);
                var  gameStats   = Mapper.Map <GameInfoDto>(gameStatsDb);

                return(Response.AsJson(gameStats));
            };

            Get[SharedRoutes.SeasonTotalStats] = parameters => {
                var seasonId    = (int)parameters.seasonId;
                var season      = leagueRepo.GetLeagueSeasonById(seasonId);
                var seasonTeams = analysisRepo.GetSeasonTeams(seasonId);

                var teamsFormDb_allGames  = analysisRepo.GetSeasonTeamForms_AllGames(seasonId);
                var teamsFormDb_homeGames = analysisRepo.GetSeasonTeamForms_HomeGames(seasonId);
                var teamsFormDb_awayGames = analysisRepo.GetSeasonTeamForms_AwayGames(seasonId);

                var teamTotals = new List <SeasonTeamTotalDto>();
                foreach (var team in seasonTeams)
                {
                    var teamFormDb_allGames  = teamsFormDb_allGames.Where(t => t.TeamId == team.FootballTeamId).FirstOrDefault();
                    var teamFormDb_homeGames = teamsFormDb_homeGames.Where(t => t.TeamId == team.FootballTeamId).FirstOrDefault();
                    var teamFormDb_awayGames = teamsFormDb_awayGames.Where(t => t.TeamId == team.FootballTeamId).FirstOrDefault();

                    var teamTotal = new SeasonTeamTotalDto
                    {
                        FootballTeamId   = team.FootballTeamId,
                        FootballTeamName = team.FootballTeam.Name,
                        GamePlayed       = team.GamePlayed,
                        TotalOver        = teamFormDb_allGames?.GamesOver2_5 ?? 0,
                        TotalUnder       = teamFormDb_allGames?.GamesUnder2_5 ?? 0,
                        TotalOverHome    = teamFormDb_homeGames?.GamesOver2_5 ?? 0,
                        TotalUnderHome   = teamFormDb_homeGames?.GamesUnder2_5 ?? 0,
                        TotalOverAway    = teamFormDb_awayGames?.GamesOver2_5 ?? 0,
                        TotalUnderAway   = teamFormDb_awayGames?.GamesUnder2_5 ?? 0
                    };
                    teamTotals.Add(teamTotal);
                }

                var totalTable = new TotalTableDto
                {
                    LeagueSeasonId = seasonId,
                    StartDate      = season.StartDate,
                    EndDate        = season.EndDate,
                    IsFinished     = season.EndDate < DateTime.Now,
                    Teams          = teamTotals.OrderBy(t => t.TotalOver).ToList()
                };
                return(Response.AsJson(totalTable));
            };

            Get[SharedRoutes.SeasonBttsStats] = parameters => {
                var seasonId    = (int)parameters.seasonId;
                var season      = leagueRepo.GetLeagueSeasonById(seasonId);
                var seasonTeams = analysisRepo.GetSeasonTeams(seasonId);

                var teamsFormDb_allGames  = analysisRepo.GetSeasonTeamForms_AllGames(seasonId);
                var teamsFormDb_homeGames = analysisRepo.GetSeasonTeamForms_HomeGames(seasonId);
                var teamsFormDb_awayGames = analysisRepo.GetSeasonTeamForms_AwayGames(seasonId);

                var teamTotals = new List <SeasonTeamBttsDto>();
                foreach (var team in seasonTeams)
                {
                    var teamFormDb_allGames  = teamsFormDb_allGames.Where(t => t.TeamId == team.FootballTeamId).FirstOrDefault();
                    var teamFormDb_homeGames = teamsFormDb_homeGames.Where(t => t.TeamId == team.FootballTeamId).FirstOrDefault();
                    var teamFormDb_awayGames = teamsFormDb_awayGames.Where(t => t.TeamId == team.FootballTeamId).FirstOrDefault();

                    var teamTotal = new SeasonTeamBttsDto
                    {
                        FootballTeamId   = team.FootballTeamId,
                        FootballTeamName = team.FootballTeam.Name,
                        GamePlayed       = team.GamePlayed,
                        BttsYes          = teamFormDb_allGames?.BTTS_Yes ?? 0,
                        BttsNo           = teamFormDb_allGames?.BTTS_No ?? 0,
                        BttsYesHome      = teamFormDb_homeGames?.BTTS_Yes ?? 0,
                        BttsNoHome       = teamFormDb_homeGames?.BTTS_No ?? 0,
                        BttsYesAway      = teamFormDb_awayGames?.BTTS_Yes ?? 0,
                        BttsNoAway       = teamFormDb_awayGames?.BTTS_No ?? 0
                    };
                    teamTotals.Add(teamTotal);
                }

                var totalTable = new BttsTableDto
                {
                    LeagueSeasonId = seasonId,
                    StartDate      = season.StartDate,
                    EndDate        = season.EndDate,
                    IsFinished     = season.EndDate < DateTime.Now,
                    Teams          = teamTotals.OrderBy(t => t.BttsYes).ToList()
                };
                return(Response.AsJson(totalTable));
            };
        }