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; }