private static eUtils.eSearchResult GetSearchResults(string db, string myQuery, eUtils.eUtilsServiceSoapClient serv, eUtils.eSearchResult searchResult = null) { eUtils.eSearchRequest req = new eUtils.eSearchRequest(); //req.db = "pmc"; req.term = HttpUtility.UrlEncode(myQuery); //req.RetMax = "100000"; req.RetMax = "1000"; req.db = db; req.usehistory = "y"; if (searchResult != null) { int current = (int.Parse(searchResult.RetStart) + int.Parse(searchResult.RetMax)); if (current >= int.Parse(searchResult.Count)) return null; req.RetStart = current.ToString(); req.WebEnv = searchResult.WebEnv; } eUtils.eSearchResult res = serv.run_eSearch(req); req.WebEnv = res.WebEnv; req.QueryKey = res.QueryKey; return res; }
public string bustaTextual(String termo) { StringBuilder builder = new StringBuilder(); StringBuilder builderFinal = new StringBuilder(); string retorno = ""; try { eUtils.eUtilsServiceSoapClient serv = new eUtils.eUtilsServiceSoapClient(); // call NCBI ESearch utility // NOTE: search term should be URL encoded String inicio = "0"; Boolean teste = true; int qnt = 0; int qntfound = 0; do{ eUtils.eSearchRequest req = new eUtils.eSearchRequest(); req.db = "nuccore"; req.term = termo.Replace(" " ,"+"); req.RetStart = inicio; req.RetMax = "100000"; eUtils.eSearchResult res = serv.run_eSearch(req); qntfound = Convert.ToInt32(res.Count); qnt = qnt + res.IdList.Length; if (qnt == qntfound) { builder.Clear(); int cont = 0; for (int x = 0; x < res.IdList.Length; x++) { if (cont == 500) { builderFinal.Append(getStringPost(createURL(builder.ToString(), "nuccore"))); richTextBox1.Text += builderFinal.ToString(); builderFinal.Clear(); builder.Clear(); cont = 0; } else { builder.Append(res.IdList[x] + ","); cont++; } } teste = false; } else { builder.Clear(); int cont = 0; for (int x = 0; x < res.IdList.Length; x++) { if (cont == 500) { builderFinal.Append(getStringPost(createURL(builder.ToString(), "nuccore"))); richTextBox1.Text += builderFinal.ToString(); builderFinal.Clear(); builder.Clear(); cont = 0; } else { builder.Append(res.IdList[x] + ","); cont++; } } } inicio = Convert.ToString(Convert.ToInt32(inicio) + 100000); }while(teste); MessageBox.Show(Convert.ToString(qntfound) + " Id`s Encontrados e armazanados em Buffer... \n Clique em OK para MOstrar as sequências"); retorno = builderFinal.ToString(); return retorno; } catch (Exception eee) { textBox1.Text = eee.ToString(); return retorno; } }