private void BuscarCEP(object sender, EventArgs e) { ResultadoLabel.Text = string.Empty; string cep = MaskTool.RemoveMask(CepEntry.Text); //Validar CEP inserido if (string.IsNullOrEmpty(cep) || cep.Length != 8 || !int.TryParse(cep, out int cepInt)) { DisplayAlert("Alerta", "CEP informado é inválido!", "OK"); return; } CepEntry.Text = MaskTool.RenderMask("#####-###", cep); //Busca CEP na internet Result result = ViaCEPService.BuscarEnderecoCep(cep, out Endereco endereco); if (!result.Sucess) { DisplayAlert("Erro", $"Ocorreu um erro na transação. Detalhes:\n{result.Message}", "OK"); return; } //Exibe CEP na tela ResultadoLabel.Text = $"Cidade: {endereco.Localidade}\n" + $"UF: {endereco.Uf}\n" + $"Bairro: {endereco.Bairro}\n" + $"Rua: {endereco.Logradouro}\n" + $"Complemento: {endereco.Complemento}\n"; }
/// <summary> /// Busca o endereço do CEP fornecido na API ViaCEP /// </summary> /// <param name="cep">Cep consultado</param> /// <param name="endereco">Enderço obtido na consulta</param> /// <returns>Objeto Result com resultado da operação</returns> public static Result BuscarEnderecoCep(string cep, out Endereco endereco) { Result result = new Result(); endereco = null; try { string urlConsultaCep = string.Format(Url, cep); WebClient webClient = new WebClient(); string resposta = webClient.DownloadString(urlConsultaCep); endereco = JsonConvert.DeserializeObject <Endereco>(resposta); if (endereco.NotPopulated) { return(new Result($"Falha ao consultar. Endereço não encontrado para o CEP {MaskTool.RenderMask("#####-###", cep)}.")); } } catch (Exception ex) { result = new Result(ex); } return(result); }