public async Task <Response> CadastrarAsync(EnderecoDto dto) { try { var cliente = await _clienteRepository.ObterAsync(Cpf.DesformatarNumero(dto.Cpf)); if (cliente == null) { return(CriarResposta(UNPROCESSABLE_ENTITY, false, "Cliente inexistente.")); } if (await _enderecoRepository.ObterAsync(cliente.Id) != null) { return(CriarResposta(UNPROCESSABLE_ENTITY, false, "Já existe um endereço para esse cliente.")); } var endereco = EnderecoMapper.MapearDtoParaModelo(cliente.Id, dto); if (!endereco.EValido()) { return(CriarResposta(UNPROCESSABLE_ENTITY, false, cliente.GetMensagemValidacao())); } await _enderecoRepository.CadastrarAsync(endereco); return(CriarResposta(OK, true, "Endereço cadastrado.")); } catch (System.Exception) { return(CriarResposta(INTERNAL_SERVER_ERROR, false, "Ocorreu um erro ao tentar cadastrar o endereço. Favor aguardar uns minutos e tentar novamente.")); } }