Exemplo n.º 1
0
        private async void GetAddressSearchBtn_Clicked(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(AddressEntry.Text) &&
                ((string)AddressEntry.Text).Length == 7)
            {
                Address Ad = await APIAddress.GetAddressSearchResult(AddressEntry.Text);

                if (Ad == null)
                {
                    await DisplayAlert("通知", "検索に失敗しました。検索条件を変更して再度検索してください。", "OK");

                    return;
                }
                this.BindingContext = Ad;
            }
            else
            {
                await DisplayAlert("警告", "郵便番号は7桁で入力いてください。", "OK");
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Retorna um endereço de acordo com o CEP indicado
        /// </summary>
        /// <param name="cep">CEP que será utilizado pela api para buscar o endereço</param>
        /// <returns>Endereço no formato da aplicação</returns>
        /// <exception cref="Exception"></exception>
        public async Task <Endereco> GetEnderecoByCEPAsync(string cep)
        {
            try
            {
                Endereco endereco = new Endereco()
                {
                    CEP = cep
                };

                HttpResponseMessage request = await client.GetAsync(@"https://viacep.com.br/ws/" + cep + "/json/");

                if (request.IsSuccessStatusCode)
                {
                    string jsonString = await request.Content.ReadAsStringAsync();

                    //Checa se a string de retorno contém erros
                    if (jsonString.Contains("erro"))
                    {
                        throw new Exception("CEP inválido");
                    }

                    //Converte a string JSON do endereço em um objeto
                    APIAddress address = JsonConvert.DeserializeObject <APIAddress>(jsonString);

                    endereco.Bairro = address.bairro;
                    endereco.Cidade = address.localidade;
                    endereco.Rua    = address.logradouro;
                    endereco.UF     = (UnidadesFederativas)Enum.Parse(typeof(UnidadesFederativas), address.uf);
                }
                else
                {
                    throw new Exception("Falha ao conectar com o serviço de Busca!");
                }

                return(endereco);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }