Esempio n. 1
0
        public async Task <ValidationResult> Handle(RegisterNewGameLendCommand message, CancellationToken cancellationToken)
        {
            if (!message.IsValid())
            {
                return(message.ValidationResult);
            }

            var gameLend = new GameLendModel(Guid.NewGuid(), message.IdGame, message.IdPerson, message.LendOn, message.ReturnedOn, message.Created, message.Updated);


            if (_gameLendRepository.GameIsAvailable(gameLend.IdGame) == false)
            {
                AddError("Game já emprestado.");
                return(ValidationResult);
            }

            gameLend.AddDomainEvent(new GameLendRegisteredEvent(gameLend.IdPerson, gameLend.IdGame, gameLend.LendOn, gameLend.ReturnedOn, gameLend.Created, gameLend.Updated));

            _gameLendRepository.Add(gameLend);

            return(await Commit(_gameLendRepository.UnitOfWork));
        }
Esempio n. 2
0
 public bool GameIsAvailable(Guid idGame)
 {
     return(_gameLendRepository.GameIsAvailable(idGame));
 }