public void CheckTeamsHaveEncountersOnTheSameDayOnAGivenListShouldReturnFalse()
        {
            ICollection <EncountersTeams> teams = new List <EncountersTeams>()
            {
                eNacional, ePeñarol
            };
            DateTime date = new DateTime(2018, 9, 27, 8, 30, 00);
            ICollection <Encounter> encounterList = new List <Encounter>();
            Encounter encounter = new Encounter()
            {
                Id = 1, Teams = teams, SportId = football.Id, Date = date
            };
            Encounter encounter2 = new Encounter()
            {
                Id = 2, Teams = teams, SportId = football.Id, Date = date.AddDays(1)
            };

            encounterList.Add(encounter);
            encounterList.Add(encounter2);
            Encounter newEncounter = new Encounter()
            {
                Id = 3, Teams = teams, SportId = football.Id, Date = date.AddDays(2)
            };

            Assert.IsFalse(encounterBL.TeamsHaveEncountersOnTheSameDay(encounterList, newEncounter));
        }
コード例 #2
0
        public ICollection <Encounter> GenerateFixture(IEnumerable <Team> teams, DateTime date)
        {
            if (teams.Count() < 2)
            {
                throw new NotEnoughTeamsForEncounterException("Not enough teams to create round robin encounters.");
            }

            DateTime                newDate    = date.AddDays(1);
            List <Team>             teamList   = teams.ToList();
            ICollection <Encounter> encounters = new List <Encounter>();

            foreach (Team team in teams)
            {
                teamList.Remove(team);
                EncountersTeams eTeam = new EncountersTeams()
                {
                    Team = team, TeamId = team.Id
                };
                foreach (Team rival in teamList)
                {
                    EncountersTeams eRival = new EncountersTeams()
                    {
                        Team = rival, TeamId = rival.Id
                    };
                    ICollection <EncountersTeams> opponents = new List <EncountersTeams>()
                    {
                        eTeam, eRival
                    };
                    Encounter encounter = new Encounter()
                    {
                        Teams = opponents, SportId = team.SportId, Date = date
                    };
                    while (encounterBL.TeamsHaveEncountersOnTheSameDay(encounter) || encounterBL.TeamsHaveEncountersOnTheSameDay(encounters, encounter))
                    {
                        encounter.Date = encounter.Date.AddDays(1);
                    }
                    encounters.Add(encounter);

                    Encounter encounter2 = new Encounter()
                    {
                        Teams = opponents, SportId = team.SportId, Date = date
                    };
                    while (encounterBL.TeamsHaveEncountersOnTheSameDay(encounter2) || encounterBL.TeamsHaveEncountersOnTheSameDay(encounters, encounter2))
                    {
                        encounter2.Date = encounter2.Date.AddDays(1);
                    }
                    encounters.Add(encounter2);
                }
            }
            return(encounters);
        }