Beispiel #1
0
        //todo properly test these with years
        public virtual void CreateSeasonSchedule(Season season)
        {
            int day = 1;

            season.Schedule = new Schedule();
            var gameCreator = new SeasonGameCreator(season);

            ScheduleRules.Where(sr => sr.IsActive(season.Year)).ToList().ForEach(rule =>
            {
                //rule about duplicating teams and divisions?
                var homeTeams = GetTeams(season, rule.HomeTeam, rule.HomeDivisionRule);
                var awayTeams = GetTeams(season, rule.AwayTeam, rule.AwayDivisionRule);

                var nextSchedule = Scheduler.CreateGames(
                    season,
                    season.Year,
                    1,
                    day,
                    homeTeams.ToList <ITeam>(),
                    (awayTeams == null || awayTeams.Count == 0) ? null : awayTeams.ToList <ITeam>(),
                    rule.Iterations,
                    rule.HomeAndAway,
                    season.CompetitionConfig.GameRules,
                    gameCreator);

                day = Scheduler.MergeSchedulesTryToCompress(season.Schedule, nextSchedule) + 1;
            });
        }
Beispiel #2
0
        public Season Create(Season previousSeason, int number, int year, int startingDay, SeasonGameCreator gameCreator)
        {
            var season = new Season()
            {
                Name = Name, Complete = false, Number = number, Year = year, StartingDay = startingDay, Started = false
            };

            CreateAndAddDivision(season, DivisionRules);
            CreateAndAddTeams(season, TeamRules);

            gameCreator.Competition = season;
            season.GameCreator      = gameCreator;
            season.Schedule         = CreateSchedule(null, season);
            return(season);
        }