public IActionResult TeamInfoSeason(int id, int year) { var weekRecords = TeamRecordHandler.GetTeamRecordsByTeamAndYear(id, year); var h2hRecords = weekRecords.Last().Head2HeadRecords .Where(h2h => h2h.GamesPlayed > 0) .OrderBy(h2h => h2h.Opponent.Name) .ToList(); var games = GameHandler.GetGamesByYearAndTeam(year, id); var players = RosterHandler.GetByTeamAndYearGroupedByPlayer(id, year).Select(list => { return(new TeamPlayerInfo { Player = list.First().Player, RosterEntries = list }); }).ToList(); return(View(new TeamInfoSeason { Team = TeamHandler.GetById(id), Year = year, WeekRecords = weekRecords, H2HRecords = h2hRecords, Games = games, Players = players })); }
public IActionResult TeamInfo(int id) { var regSeasonRecords = TeamRecordHandler.GetFinalRegularSeasonTeamRecordsForEachYear(id); var regSeasonCareerRecord = regSeasonRecords.Aggregate((total, next) => { return(new TeamRecord { Win = total.Win + next.Win, Loss = total.Loss + next.Loss, PointsFor = total.PointsFor + next.PointsFor, PointsAgainst = total.PointsAgainst + next.PointsAgainst }); }); var h2hRecords = TeamRecordHandler.GetAccumulatedHead2HeadRecords(id).OrderByDescending(h2h => h2h.Pct).ToList(); var playoffFinalRecords = TeamRecordHandler.GetFinalTeamRecordsForEachYear(id).Where(tr => tr.IsPlayoffs).ToList(); return(View(new TeamInfo { Team = TeamHandler.GetById(id), RegularSeasonRecords = regSeasonRecords, RegularSeasonCareerRecord = regSeasonCareerRecord, H2HRecords = h2hRecords, PlayoffFinalRecords = playoffFinalRecords })); }
public IActionResult SeasonInfo(int year) { var teamRecords = TeamRecordHandler.GetLatestRegularSeasonTeamRecords(year); var games = GameHandler.GetGamesByYear(year); return(View(new SeasonInfo { Year = year, Standings = teamRecords, Games = games })); }
public IActionResult Index() { var teams = TeamHandler.GetAllTeams(); teams.Sort((t1, t2) => t1.Name.CompareTo(t2.Name)); var model = teams.Select(t => new TeamOverallInfo { Team = t, YearsActive = TeamRecordHandler.GetYearsActive(t.Id), NumChampion = SeasonInfoHandler.GetNumChampion(t.Id), CareerRecord = TeamRecordHandler.GetCareerRecord(t.Id) }).ToList(); return(View(model)); }
public static Standings GetStandings(int year, int week) { List <TeamRecord> teamRecords = null; if (week == 0) { // create default standings var teams = GameHandler.GetTeamsInYear(year); teamRecords = new List <TeamRecord>(); foreach (var team in teams) { teamRecords.Add(new TeamRecord { Year = year, Week = 0, TeamId = team.Id, // create H2H records against every other team Head2HeadRecords = teams.Where(t => t.Id != team.Id).Select(t => new Head2HeadRecord { Year = year, Week = week, TeamId = team.Id, OpponentId = t.Id }).ToList() }); } } else { teamRecords = TeamRecordHandler.GetTeamRecordsByWeek(year, week); } if (week <= SeasonInfoHandler.GetSeason(year).RegularSeasonLength) { return(new RegularSeasonStandings(teamRecords)); } return(new PlayoffStandings(teamRecords)); }
public static Utils.Standings CalculateStandings(int year, int week, bool force = false) { if (week < 1 || week > 16) { throw new ArgumentException(); } var weekExists = TeamRecordHandler.WeekExists(year, week); if (weekExists) { if (force) { TeamRecordHandler.DeleteTeamRecordsInWeek(year, week); } else { return(Utils.Standings.GetStandings(year, week)); } } var prevStandings = Utils.Standings.GetStandings(year, week - 1); if (!prevStandings.IsValid()) { // previous week's standings does not exist yet prevStandings = CalculateStandings(year, week - 1, force: force); } Console.WriteLine("Calculating standings for {0} week {1}", year, week); Utils.Standings newStandings = null; var seasonInfo = SeasonInfoHandler.GetSeason(year); if (week <= seasonInfo.RegularSeasonLength) { newStandings = new Utils.RegularSeasonStandings(prevStandings); } else { newStandings = new Utils.PlayoffStandings(prevStandings); } var games = GameHandler.GetGamesByWeek(year, week); foreach (var game in games) { if (game.HasValidResult) { newStandings.AddResult(game); } } newStandings.SortStandings(); TeamRecordHandler.Add(newStandings.TeamRecords); // update season info if (week <= seasonInfo.RegularSeasonLength) { var highestPointsForRecord = newStandings.GetHighestPointsForRecord(); seasonInfo.HighestPointsFor = highestPointsForRecord.PointsFor; seasonInfo.HighestPointsForTeamId = highestPointsForRecord.TeamId; seasonInfo.HighestPointsForTeam = highestPointsForRecord.Team; if (week == seasonInfo.RegularSeasonLength) { seasonInfo.RegularSeasonChampionId = newStandings.TeamRecords[0].TeamId; } } else if (week == seasonInfo.SeasonLength) { seasonInfo.ChampionId = newStandings.TeamRecords[0].TeamId; seasonInfo.SecondPlaceId = newStandings.TeamRecords[1].TeamId; seasonInfo.ThirdPlaceId = newStandings.TeamRecords[2].TeamId; seasonInfo.SackoId = newStandings.TeamRecords.Last().TeamId; } SeasonInfoHandler.Update(seasonInfo); return(newStandings); }