public override SearchResult[] Search(SearchQuery query) { List<SearchResult> searchResults = new List<SearchResult>(); int startOffset = 0; MSNSearchService msnSearchService = new MSNSearchService(); SearchRequest searchRequest = new SearchRequest(); int arraySize = 1; SourceRequest[] sr = new SourceRequest[arraySize]; sr[0] = new SourceRequest(); sr[0].Source = SourceType.Web; sr[0].Offset = startOffset; String searchPrefix = String.IsNullOrEmpty(_siteDomainName) ? "" : "site:" + _siteDomainName + " "; searchRequest.Query = searchPrefix + query.Query; searchRequest.Requests = sr; searchRequest.AppID = _appID; searchRequest.CultureInfo = System.Threading.Thread.CurrentThread.CurrentUICulture.Name; SearchResponse searchResponse = msnSearchService.Search(searchRequest); foreach (SourceResponse sourceResponse in searchResponse.Responses) { Result[] sourceResults = sourceResponse.Results; foreach (Result sourceResult in sourceResults) { SearchResult searchResult = new SearchResult(); if (!String.IsNullOrEmpty(sourceResult.Title)) searchResult.Title = sourceResult.Title; if (!String.IsNullOrEmpty(sourceResult.Description)) searchResult.Description = sourceResult.Description; if (!String.IsNullOrEmpty(sourceResult.Url)) searchResult.Url = sourceResult.Url; searchResults.Add(searchResult); } } return searchResults.ToArray(); }
/// <remarks/> public void SearchAsync(SearchRequest Request, object userState) { if ((this.SearchOperationCompleted == null)) { this.SearchOperationCompleted = new System.Threading.SendOrPostCallback(this.OnSearchOperationCompleted); } this.InvokeAsync("Search", new object[] { Request}, this.SearchOperationCompleted, userState); }
/// <remarks/> public void SearchAsync(SearchRequest Request) { this.SearchAsync(Request, null); }
public SearchResponse Search(SearchRequest Request) { object[] results = this.Invoke("Search", new object[] { Request}); return ((SearchResponse)(results[0])); }