public void CreateForEndOfSeason()
        {
            var gameDateTime = GameDateTimeFactory.CreateForEndOfSeason(_dateTime);

            AssertDefaultStuff(gameDateTime);

            Assert.IsFalse(gameDateTime.ManagerPlaysMatch);
            Assert.AreEqual(GameDateTimeEventStatus.NotApplicable, gameDateTime.Matches);
            Assert.AreEqual(GameDateTimeEventStatus.ToDo, gameDateTime.EndOfSeason);
        }
        public void CreateNewForSeason(IEnumerable <DateTime> matchDatesManagersTeam, IEnumerable <DateTime> matchDatesOtherTeams, DateTime endOfSeasonDate)
        {
            var gameDateTimes = new List <GameDateTime>();

            // Add dates for all matches.
            foreach (var matchDate in matchDatesManagersTeam)
            {
                gameDateTimes.Add(GameDateTimeFactory.CreateForManagersMatches(matchDate));
            }

            foreach (var matchDate in matchDatesOtherTeams)
            {
                gameDateTimes.Add(GameDateTimeFactory.CreateForOtherTeamsMatches(matchDate));
            }

            // Add the date when the season can be ended.
            gameDateTimes.Add(GameDateTimeFactory.CreateForEndOfSeason(endOfSeasonDate));

            SetFirstDateToNowIfNecessary(gameDateTimes);

            _transactionManager.RegisterInsert(gameDateTimes);
        }