public bool GenerateSchedule() { Leagues newLeagueEntity = new Leagues { Name = this.NewLeagueName }; DateTime yearOfStart = new DateTime(this.NewLeagueYearOfStart, 1, 1); LeagueEntityToLibraryAdapter newLeagueAdapter = new LeagueEntityToLibraryAdapter(); newLeagueAdapter.Adapt(newLeagueEntity); RoundRobinScheduler scheduler = new RoundRobinScheduler(); scheduler.LoadLeague(newLeagueAdapter); List <ITeam> listOfTeamsAdapter = new List <ITeam>(); foreach (Teams team in this.TeamsForNewLeague) { TeamEntityToLibraryAdapter teamAdapter = new TeamEntityToLibraryAdapter(); teamAdapter.Adapt(team); listOfTeamsAdapter.Add(teamAdapter); } scheduler.LoadTeams(listOfTeamsAdapter); scheduler.YearOfStart = yearOfStart; scheduler.GenerateSchedule(); List <IMatch> listOfMatchesFromAlgorithm = scheduler.GetSchedule(); List <Matches> listOfMatchesEntities = new List <Matches>(); foreach (IMatch match in listOfMatchesFromAlgorithm) { Matches m = new Matches() { TimeOfPlay = match.TimeOfPlay, HomeTeamId = match.HomeTeam.Id, AwayTeamId = match.AwayTeam.Id, }; Context.Matches.Add(m); } Context.Leagues.Add(newLeagueEntity); Context.SaveChanges(); return(true); }
/// <summary> /// Invokes scheduler at year 2017. /// </summary> /// <param name="teams">Teams to be put into the scheduler.</param> /// <returns></returns> private RoundRobinScheduler InvokeScheduler(List <ITeam> teams) { RoundRobinScheduler rrs = new RoundRobinScheduler(); League league = new League(); rrs.LoadLeague(league); rrs.YearOfStart = new DateTime(2017, 3, 8); rrs.LoadTeams(teams); return(rrs); }