public int CreateDivision(int leagueId, string name, int level, DateTime startDate, DateTime endDate, DayOfWeek dayOfWeek, int frequency, IEnumerable<int> teamIds) { NationalLeague league = Context.NationalLeagues.Find(leagueId); NationalLeagueSeason leagueSeason = Context.NationalLeagueSeasons.First(s => s.CompetitionId == leagueId && s.IsActive); var teams = teamIds.Select(id => Context.Teams.Find(id)).ToArray(); var division = new League(league, name, level, dayOfWeek, frequency); var divisionSeason = new LeagueSeason(division, startDate, endDate, teams); leagueSeason.AddDivisionSeason(divisionSeason); Context.SaveChanges(); return division.Id; }
public override TournamentSeason AdvanceSeason(IEnumerable<Team> relegatedFromHigher, IEnumerable<Team> promotedFromLower) { IEnumerable<Team> updatedTeams = Teams; if (relegatedFromHigher.Any()) { updatedTeams = updatedTeams.Except(PromotedTeams).Union(relegatedFromHigher); } if (promotedFromLower.Any()) { updatedTeams = updatedTeams.Except(RelegatedTeams).Union(promotedFromLower); } IsActive = false; var nextSeason = new LeagueSeason(League, StartDate.AddYears(1), EndDate.AddYears(1), updatedTeams.ToArray()); return nextSeason; }