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

            var person = new PersonModel(Guid.NewGuid(), message.Name, message.Phone, message.Email, message.Created, message.Updated);


            if (await _personRepository.GetByEmail(person.Email) != null)
            {
                AddError("Pessoa já foi cadastrada.");
                return(ValidationResult);
            }

            person.AddDomainEvent(new PersonRegisteredEvent(person.Name, person.Phone, person.Email, person.Created));

            _personRepository.Update(person);

            return(await Commit(_personRepository.UnitOfWork));
        }