public static IEnumerable Search(SearchQuery query) {
            List<SearchResult> searchResults = new List<SearchResult>();

            List<SearchProviderBase> searchProviders = GetSearchProviders();

            if ((query == null) || (String.IsNullOrEmpty(query.Query)))
                return searchResults;

            foreach (SearchProviderBase searchProvider in searchProviders) {
                SearchResult[] providerSearchResults = null;
                providerSearchResults = searchProvider.Search(query);

                if ((providerSearchResults != null) && (providerSearchResults.Length > 0))
                    searchResults.AddRange(providerSearchResults);
            }

            return searchResults;
        }
        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();
        }
 public static IEnumerable Search(String query) {
     SearchQuery searchQuery = new SearchQuery();
     searchQuery.Query = query;
     return Search(searchQuery);
 }
 public virtual SearchResult[] Search(SearchQuery query) {
     return null;
 }