コード例 #1
0
        /// <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);
        }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
        /// <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);
        }
コード例 #4
0
        /// <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);
        }