public Person Take(EmailAddressUpdateCommand command) { var mail = EmailAddresses.First(e => e.Id == command.Id); mail.CopyPropertiesFrom(command); base.AddEvent(new PersonEmailAddressUpdateDomainEvent { AggregateRootId = Id, CommandJson = JsonConvert.SerializeObject(command), UserId = command.UserId }); return(this); }
public async Task <ICommandHandlerAggregateAnswer> HandleAsync(EmailAddressUpdateCommand command) { var answer = new CommandHandlerAggregateAnswer(); var person = await personRepository.Query(command.PersonId); if (person.IsNotNull()) { answer.ValidationResult = this.updateMailValidationHandler.Validate(command); if (command.IsValid) { answer.AggregateRoot = await personRepository.Update(person.Take(command)); } } return(answer); }
public EmailAddress Take(EmailAddressUpdateCommand command) { this.CopyPropertiesFrom(command); return(this); }