/// <summary> /// Busca os dados do endereço pelo logradouro. /// </summary> /// <param name="municipio">The municipio.</param> /// <param name="tipoLogradouro">The tipo logradouro.</param> /// <param name="logradouro">The logradouro.</param> /// <param name="uf">The uf.</param> /// <param name="bairro">The bairro.</param> /// <returns>System.Int32.</returns> public int BuscarPorLogradouro(ConsultaUF uf, string municipio, string logradouro, string tipoLogradouro = "", string bairro = "") { Guard.Against <ArgumentException>(municipio.IsEmpty(), "Municipio não pode ser vazio."); Guard.Against <ArgumentException>(logradouro.IsEmpty(), "Logradouro não pode ser vazio."); Resultados.Clear(); var provider = GetProvider(); var results = provider.BuscarPorLogradouro(uf, municipio, logradouro, tipoLogradouro, bairro); Resultados.AddRange(results); OnBuscaEfetuada.Raise(this, EventArgs.Empty); return(Resultados.Count); }
/// <summary> /// Buscar o endereço para o CEP passado. /// </summary> /// <param name="cep">The cep.</param> /// <returns>System.Int32.</returns> public int BuscarPorCEP(string cep) { Guard.Against <ArgumentException>(cep.IsEmpty(), "CEP não pode ser vazio."); Guard.Against <ArgumentException>(!cep.IsCep(), "CEP inválido."); Resultados.Clear(); var provider = GetProvider(); var results = provider.BuscarPorCEP(cep); Resultados.AddRange(results); OnBuscaEfetuada.Raise(this, EventArgs.Empty); return(Resultados.Count); }
/// <summary> /// Busca os dados do IBGE pelo codigo do Municipio /// </summary> /// <param name="codigo"></param> /// <returns></returns> public int BuscarPorCodigo(int codigo) { Guard.Against <ArgumentException>(codigo < 1, "Código do Município deve ser informado"); var request = GetClient($"{CIBGE_URL}?codigo={codigo}"); var responseStream = request.GetResponse().GetResponseStream(); Guard.Against <ACBrException>(responseStream == null, "Erro ao acessar o site."); string retorno; using (var stHtml = new StreamReader(responseStream, ACBrEncoding.ISO88591)) retorno = stHtml.ReadToEnd(); ProcessarResposta(retorno); var result = Resultados.Count; OnBuscaEfetuada.Raise(this, EventArgs.Empty); return(result); }
/// <summary> /// Busca os dados do IBGE pelo nome do Municipio /// </summary> /// <param name="municipio">The municipio.</param> /// <param name="uf">The uf.</param> /// <param name="exata">if set to <c>true</c> [exata].</param> /// <param name="caseSentive">if set to <c>true</c> [case sentive].</param> /// <returns>System.Int32.</returns> public int BuscarPorNome(string municipio, ConsultaUF?uf = null, bool exata = false, bool caseSentive = false) { Guard.Against <ArgumentException>(municipio.IsEmpty(), "Município deve ser informado"); var request = GetClient($"{CIBGE_URL}?nome={HttpUtility.UrlEncode(municipio.Trim(), ACBrEncoding.ISO88591)}"); var responseStream = request.GetResponse().GetResponseStream(); Guard.Against <ACBrException>(responseStream.IsNull(), "Erro ao acessar o site."); string retorno; using (var stHtml = new StreamReader(responseStream, ACBrEncoding.ISO88591)) retorno = stHtml.ReadToEnd(); ProcessarResposta(retorno); if (uf.HasValue) { Resultados.RemoveAll(x => x.UF != uf); } if (exata) { if (caseSentive) { Resultados.RemoveAll(x => x.Nome.RemoveAccent() != municipio.RemoveAccent()); } else { Resultados.RemoveAll(x => x.Nome.ToUpper().RemoveAccent() != municipio.ToUpper().RemoveAccent()); } } var result = Resultados.Count; OnBuscaEfetuada.Raise(this, EventArgs.Empty); return(result); }