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);
        }
Exemplo n.º 2
0
        public void LoadTeams_WhenTeamsQuantityLessThanTwo_ReturnsFalse()
        {
            //try to load one team into the scheduler
            //ARRANGE
            List <ITeam>        lt  = this.CreateBlankTeams(1);
            RoundRobinScheduler rrs = new RoundRobinScheduler();

            //ACT
            bool loaded = rrs.LoadTeams(lt);

            //ASSERT
            Assert.IsFalse(loaded);
        }
Exemplo n.º 3
0
        public void LoadTeams_WhenTeamsNull_ReturnsFalse()
        {
            //try to load null as teams into the scheduler;
            //ARRANGE
            List <ITeam> teams = null;

            RoundRobinScheduler rrs = new RoundRobinScheduler();

            //ACT
            bool loaded = rrs.LoadTeams(teams);

            //ASSERT
            Assert.IsFalse(loaded);
        }
Exemplo n.º 4
0
        public void LoadTeams_WhenTeamsCountNotEven_ReturnsFalse()
        {
            //try to load three (odd number) teams into the scheduler
            //ARRANGE
            List <ITeam> teams = this.CreateBlankTeams(3);

            RoundRobinScheduler rrs = new RoundRobinScheduler();

            //ACT
            bool loaded = rrs.LoadTeams(teams);

            //ASSERT
            Assert.IsFalse(loaded);
        }
Exemplo n.º 5
0
        /// <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);
        }
Exemplo n.º 6
0
        public void LoadTeams_WhenTeamsHaveNoDistinctiveIds_ReturnsFalse()
        {
            //try to load collection of teams. In the collection two teams have the same id.
            //ARRANGE
            //get teams
            List <ITeam> teams = this.CreateBlankTeams(17);

            //add one with non distinctive id
            Team nonDistinctiveIdTeam = new Team
            {
                Id = teams.Count - 1
            };

            teams.Add(nonDistinctiveIdTeam);

            RoundRobinScheduler rrs = new RoundRobinScheduler();

            //ACT
            bool loaded = rrs.LoadTeams(teams);

            //ASSERT
            Assert.IsFalse(loaded);
        }