Ejemplo n.º 1
0
        public DomainResult StartSeason()
        {
            if (Teams.Count() < 2)
            {
                return(DomainResult.Error(new SeasonMustHaveAtLeast2Teams(Teams.Count())));
            }
            if (TeamCountIsUneven())
            {
                return(DomainResult.Error(new CanNotStartSeasonWithUnevenTeamCount(Teams.Count())));
            }
            if (SeasonIsStarted)
            {
                return(DomainResult.Error(new CanNotStartSeasonASecondTime()));
            }

            var matchPairingService = new MatchPairingService();
            var gameDays            = matchPairingService.ComputePairings(Teams).ToList();

            var seasonStarted = new SeasonStarted(SeasonId, gameDays, DateTimeOffset.UtcNow);

            return(DomainResult.Ok(seasonStarted));
        }
Ejemplo n.º 2
0
 public void Handle(SeasonStarted domainEvent)
 {
     IsStarted = true;
     GameDays  = domainEvent.GameDays;
 }
Ejemplo n.º 3
0
 public void Apply(SeasonStarted domainEvent)
 {
     SeasonIsStarted = true;
     GameDays        = domainEvent.GameDays;
 }