예제 #1
0
        public async Task DeveObterEnderecoComoJsonAsync()
        {
            var jsonEndereco = await _viaCepService.ObterEnderecoComoJsonAsync("01001000");

            Assert.True(jsonEndereco.Contains("\"cep\": \"01001-000\""));

            jsonEndereco = await _viaCepService.ObterEnderecoComoJsonAsync("01001-000");

            Assert.True(jsonEndereco.Contains("\"cep\": \"01001-000\""));

            var jsonEnderecos = await _viaCepService.ObterEnderecosComoJsonAsync(_enderecoRequisicao);

            Assert.True(jsonEnderecos.Contains("\"localidade\": \"Porto Alegre\""));
        }
예제 #2
0
        public async Task <IActionResult> ObterEndereco([FromBody] string cep)
        {
            if (string.IsNullOrEmpty(cep))
            {
                return(BadRequest("Atributo CEP é obrigatório."));
            }

            Regex rgx = new Regex("^[0-9]{5}-?[\\d]{3}$");

            if (!rgx.IsMatch(cep))
            {
                return(BadRequest("CEP Inválido"));
            }

            string jsonEndereco = null;

            try
            {
                cep          = cep.Replace("-", "");
                jsonEndereco = await viaCepService.ObterEnderecoComoJsonAsync(cep);

                var obj = JsonConvert.DeserializeObject <ViaCepReturn>(jsonEndereco);
                if (obj != null)
                {
                    var cepobj = obj.getCEP();

                    if (cepobj != null)
                    {
                        await clientRepository.AddCepAsync(cepobj);
                    }
                }
            }
            catch (CepInexistenteException e)
            {
                jsonEndereco = e.Message;
                return(BadRequest(jsonEndereco));
            }

            return(Ok(jsonEndereco));
        }
예제 #3
0
 public async Task <string> ComoJsonAsync()
 => await _viaCepService.ObterEnderecoComoJsonAsync(_cep);