private static int CalculateTotalRoundCount(int groupTeamCount, bool hasReturnRound) { var scheduler = new Scheduler(); int roundCount = scheduler.CalculateRoundCount(groupTeamCount); return hasReturnRound ? 2 * roundCount : roundCount; }
public override void ScheduleFixtures(Action<Fixture> addFixture) { if (Phase == TournamentPhase.NotStarted) { var scheduler = new Scheduler(); var fixtures = scheduler.ScheduleLeagueFixtures(this, Teams, StartDate, EndDate, DayOfWeek, Frequency, HasReturnRound); foreach (var fixture in fixtures) { addFixture(fixture); } Phase = TournamentPhase.InProgress; NextSchedulingDate = null; } }
private void ScheduleRoundDates() { var scheduler = new Scheduler(); var roundDates = scheduler.ScheduleRoundDates(StartDate, EndDate, DayOfWeek, Frequency, StagesOrdered.Select(s => s.RoundCount).ToArray()); int roundCount = 0; foreach (var stage in StagesOrdered) { var stageDates = roundDates.Skip(roundCount).Take(stage.RoundCount).ToArray(); stage.ScheduleRoundDates(stageDates); roundCount += stage.RoundCount; } }
public IEnumerable<Fixture> CreateFixtures(TournamentSeason season, IEnumerable<DateTime> dates) { var scheduler = new Scheduler(); return scheduler.ScheduleLeagueFixtures(season, dates, HasReturnRound, Teams); }