Exemplo n.º 1
0
        private void btnBuscar_Click(object sender, EventArgs e)
        {
            try
            {
                //pede o recolhimento do lixo geral
                System.GC.Collect();

                //Adiciona o texto de busca na lista de autocomplete
                txtBuscar.AutoCompleteCustomSource.Add(txtBuscar.Text);

                //verifica se vai parar os threads pra inicia =r outra busca
                switch (verificarThreadState())
                {
                    case System.Windows.Forms.DialogResult.Yes:
                        clsExecutar.stopAllThreads();
                        status.iniciar();
                        break;

                    case System.Windows.Forms.DialogResult.No:
                        return;
                }

                //declara variaveis
                Essencials.clsEssencials essencial = new Essencials.clsEssencials();

                //verifica conectividade com internet
                status.setStatusLabel("Verificando conexão com a internet. . .");
                if (essencial.verificarConexao() == false)
                {
                    status.setStatusLabel("Não há conexão com a internet.");
                    return;
                }

                //REMOVE ACENTOS
                status.setStatusLabel("Removendo caracteres inválidos do texto de busca. . .");
                txtBuscar.Text = essencial.removerAcentos(txtBuscar.Text);

                //Chama classe execução para iniciar o Thread de Busca
                clsExecutar.startThreadBuscarReceitas(txtBuscar.Text, clsConfiguracao);

            }
            catch (ArgumentNullException)
            {
                status.setStatusLabel("Foram encontradas 0 receitas.");
            }
            catch (Exception)
            {
                tabControlSites.disposeAllTabPages();
                status.setStatusLabel("Ocorreu um erro desconhecido, informe o desenvolvedor a respeito.");
            }
        }
        public List<PortalControls.clsReceita> search(string textoBusca, PortalControls.clsTabPageConfiguracao clsConfiguracao)
        {
            //cria um objeto receita/lista
            List<PortalControls.clsReceita> listReceita = new List<PortalControls.clsReceita>();
            PortalControls.clsReceita receita;

            //Arruma a url inicial faltando a pagina
            urlCompleta = urlParte1 + urlParte2 + textoBusca.Replace(" ", espaco) + urlParte3;

            //variaveis para numero de receitas
            int qntResultados = 0;
            int cont = 1;

            //recolhe o codigo fonte da primeira pagina
            textoInteiro = new Essencials.clsEssencials().pegarCodigoFonte(urlCompleta + "1");
            qntResultados = searchQntResultados();
            if (qntResultados == 0) return null;
            if (qntResultados > clsConfiguracao.qntMaxResultadosSite) qntResultados = clsConfiguracao.qntMaxResultadosSite;

            //define o valor maximo para o progressbar / coloca quantidade de receitas encontradas nos status
            menuStatus.addMaxProgressBar(qntResultados);

            //Iniciar a procura pelas receitas
            for (int i = 0; i < qntResultados; i++)
            {
                //cria um novo objeto receita
                receita = new PortalControls.clsReceita();

                //atribui valores ao objeto
                receita.Titulo = searchTitulo();
                receita.Url = searchUrlImagem();
                receita.Link = searchLink();
                receita.Descricao = searchDescricao();

                //adiciona a lista
                listReceita.Add(receita);

                //a cada 10 items, procura o codigo fonte da proxima pagina
                if ((i + 1) % qntItensPagSadia == 0)
                {
                    //pega o codigo fonte
                    cont++;
                    textoInteiro = new Essencials.clsEssencials().pegarCodigoFonte(urlCompleta + cont.ToString());
                }

                menuStatus.addValueProgressBar(1);
            }

            return listReceita;
        }