public IHttpActionResult GetResultTable(int leagueId) { long seasonId = GetCurrentSeasonId(leagueId, DateTime.Now); if (seasonId == 0) { return Ok(); } scoretableview[] _scoreTable = null; season _season = null; List<ScoreTableResultDTO> scoreTable = new List<ScoreTableResultDTO>(); using (var context = new escorcenterdbEntities()) { _scoreTable = (from st in context.scoretableviews where st.season == seasonId select st).OrderBy(st => st.GamesWon.Value * 3 + st.GamesDrawn.Value * 1).ToArray<scoretableview>(); _season = (from s in context.seasons where s.id == seasonId && s.enabled == true select s).FirstOrDefault<season>(); if (_scoreTable == null || _season == null) { return NotFound(); } foreach (scoretableview st in _scoreTable) { team _team = (from t in context.teams where t.Id == st.team select t).FirstOrDefault<team>(); String leagueName = getLeagueNameById(_team.League); ScoreTableResultDTO result = new ScoreTableResultDTO { Team = AutoMapper.Mapper.Map<team, TeamDTO>(_team), GamesDrawn = st.GamesDrawn.Value, GamesLost = st.GamesLost.Value, GamesPlayed = st.GamesPlayed.Value, GamesWined = st.GamesWon.Value, //Cambiar esto a hacerlo dinamico, no solo para el fut Points = st.GamesWon.Value * 3 + st.GamesDrawn.Value * 1, ScoreAgainst = (long)st.ScoreAgainst.Value, ScoreDifference = (long)st.ScoreDifference.Value, ScoreFavor = (long)st.ScoreFavor.Value, League = leagueName }; scoreTable.Add(result); } } if (_season == null) { return Ok(); } scoreTable.OrderBy(r => r.Points); SeasonDTO season = new SeasonDTO { DateFrom = _season.dateFrom.ToString(), DateTo = _season.dateTo.ToString(), Description = _season.description, Id = _season.id, League = _season.league, Title = _season.title }; season.ScoreTableResult.AddRange(scoreTable); return Ok(season); }
public IHttpActionResult GetScoreTableResult(int teamId) { scoretableview _scoreTableView = null; LeaguesApiController leagueApi = new LeaguesApiController(); int position = 0; team _team = null; scoretableview[] _scoreTable = null; using (var context = new escorcenterdbEntities()) { _scoreTableView = (from s in context.scoretableviews where s.team == teamId select s).FirstOrDefault<scoretableview>(); _team = (from t in context.teams where t.Id == teamId && t.Enabled == true select t).FirstOrDefault<team>(); long seasonId = leagueApi.GetCurrentSeasonId(_team.League, DateTime.Now); _scoreTable = (from st in context.scoretableviews where st.season == seasonId select st).OrderBy(st => st.GamesWon.Value * 3 + st.GamesDrawn.Value * 1).ToArray<scoretableview>(); } if (_scoreTableView == null) return Ok(); foreach (scoretableview st in _scoreTable) { if (st.team == teamId) break; position++; } // scoretableview y ScoreTableResultDTO son incompatibles team del primero es Int32, team del segundo es TeamDTO TeamDTO teamDTO = AutoMapper.Mapper.Map<team, TeamDTO>(_team); ScoreTableResultDTO scoreTableResultDTO = new ScoreTableResultDTO() { League = leagueApi.getLeagueNameById(_team.League), Position = (long)position, GamesDrawn = (long)_scoreTableView.GamesDrawn, GamesLost = (long)_scoreTableView.GamesLost, GamesPlayed = (long)_scoreTableView.GamesPlayed, GamesWined = (long)_scoreTableView.GamesWon, Points = (long)_scoreTableView.ScoreFavor, ScoreFavor = (long)_scoreTableView.ScoreFavor, ScoreDifference = (long)_scoreTableView.ScoreDifference, ScoreAgainst = (long)_scoreTableView.ScoreAgainst, Team = teamDTO }; return Ok(scoreTableResultDTO); }