public async Task <ValidationResult> Handle(RegistrarResponsavelCommand message, CancellationToken cancellationToken) { if (!message.EhValido()) { return(message.ValidationResult); } var responsavel = new Responsavel(message.Id, message.Nome, message.Funcao, message.Email, message.Excluido); var responsavelExistente = await _responsavelRepository.ObterPorEmail(responsavel.Email.Endereco); if (responsavelExistente != null) { AdicionarErro("Este Email já está em uso."); return(ValidationResult); } _responsavelRepository.Adicionar(responsavel); responsavel.AdicionarEvento(new ResponsavelRegistradoEvent(message.Id, message.Nome, message.Funcao, message.Email, message.Excluido)); return(await PersistirDados(_responsavelRepository.UnitOfWork)); }