public IGoogleSearchResult Search(string queryText, int startFrom, GoogleSearch.ResultTypes resultType) { Google.GoogleSearchService service = new Google.GoogleSearchService(); Google.GoogleSearchResult tempSearchResult = service.doGoogleSearch(licenseKey, queryText, startFrom, 10, filter, restrict, safeSearch, languageRestrict, string.Empty, string.Empty); object convertedResult = ConvertResult(tempSearchResult, resultType); GoogleSearchResult searchResult = new GoogleSearchResult(this, tempSearchResult.estimatedTotalResultsCount, startFrom, 10, queryText, convertedResult, resultType); return(searchResult); }
private object ConvertResult(Google.GoogleSearchResult searchResult, ResultTypes resultType) { switch (resultType) { case ResultTypes.Raw: return(searchResult); case ResultTypes.XmlDocument: return(ConvertToXmlDocument(searchResult)); case ResultTypes.DataSet: return(ConvertToDataSet(searchResult)); default: throw new ApplicationException("Unknown result Type. Cannot convert."); } }
private DataSet ConvertToDataSet(Google.GoogleSearchResult searchResult) { DataSet dataSet = new DataSet("GoogleWebSearchResults"); DataTable table = dataSet.Tables.Add(); table.Columns.Add(SummaryFieldName, typeof(string)); table.Columns.Add(URLFieldName, typeof(string)); table.Columns.Add(SnippetFieldName, typeof(string)); table.Columns.Add(TitleFieldName, typeof(string)); table.Columns.Add(CachedSizeFieldName, typeof(string)); table.Columns.Add(RelatedInformationPresentFieldName, typeof(bool)); table.Columns.Add(HostNameFieldName, typeof(string)); table.Columns.Add(DirectoryCategoryFieldName, typeof(string)); table.Columns.Add(DirectoryTitleFieldName, typeof(string)); Google.ResultElement resultElement; DataRow row = null; for (int i = 0; i < searchResult.resultElements.Length; i++) { row = table.NewRow(); resultElement = searchResult.resultElements[i]; row[SummaryFieldName] = resultElement.summary; row[URLFieldName] = resultElement.URL; row[SnippetFieldName] = resultElement.snippet; row[TitleFieldName] = resultElement.title; row[CachedSizeFieldName] = resultElement.cachedSize; row[RelatedInformationPresentFieldName] = resultElement.relatedInformationPresent; row[HostNameFieldName] = resultElement.hostName; row[DirectoryCategoryFieldName] = resultElement.directoryCategory.fullViewableName; row[DirectoryTitleFieldName] = resultElement.directoryTitle; table.Rows.Add(row); } return(dataSet); }
private XmlDocument ConvertToXmlDocument(Google.GoogleSearchResult searchResult) { XmlDocument xmlDocument = new XmlDocument(); XmlNode resultsNode = xmlDocument.CreateElement("results"); XmlAttribute resultsCount = xmlDocument.CreateAttribute("count"); resultsCount.Value = searchResult.estimatedTotalResultsCount.ToString(); resultsNode.Attributes.Append(resultsCount); xmlDocument.AppendChild(resultsNode); XmlNode resultNode; Google.ResultElement resultElement; for (int i = 0; i < searchResult.resultElements.Length; i++) { resultElement = searchResult.resultElements[i]; resultNode = AddElement(resultsNode, "result", null); AddElement(resultNode, SummaryFieldName, resultElement.summary); AddElement(resultNode, URLFieldName, resultElement.URL); AddElement(resultNode, SnippetFieldName, resultElement.snippet); AddElement(resultNode, TitleFieldName, resultElement.title); AddElement(resultNode, CachedSizeFieldName, resultElement.cachedSize); AddElement(resultNode, RelatedInformationPresentFieldName, resultElement.relatedInformationPresent.ToString()); AddElement(resultNode, HostNameFieldName, resultElement.hostName); AddElement(resultNode, DirectoryCategoryFieldName, resultElement.directoryCategory.fullViewableName); AddElement(resultNode, DirectoryTitleFieldName, resultElement.directoryTitle); resultsNode.AppendChild(resultNode); } return(xmlDocument); }