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)); }; }
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)); }; }