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;
        }
Пример #2
0
        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;
        }