public async Task <ValidationResult> Handle(RegistrarCidadaoCommand message, CancellationToken cancellationToken)
        {
            if (!message.EhValido())
            {
                return(message.ValidationResult);
            }

            var cidadao = new Models.Cidadao(message.Id, message.Nome, message.Email, message.Cpf);

            var cidadaoExistente = await _cidadaoRepository.ObterPorCpf(cidadao.Cpf.Numero);

            if (cidadaoExistente != null)
            {
                AdicionarErro("Este CPF já está em uso.");
                return(ValidationResult);
            }

            _cidadaoRepository.Adicionar(cidadao);

            cidadao.AdicionarEvento(new CidadaoRegistradoEvent(message.Id, message.Nome, message.Email, message.Cpf));

            return(await PersistirDados(_cidadaoRepository.UnitOfWork));
        }
Ejemplo n.º 2
0
 public void Adicionar(Models.Cidadao cliente)
 {
     _context.Cidadaos.Add(cliente);
 }