public SearchResultContext <SearchModelBase> Search() { var requester = new SearchOperation(); var queryContext = new QueryContext { Client = Configuration.ClientGuid.ToString() }; for (var a = 0; a < SearchClients.Count; a++) { SearchClients[a].Query.QueryId = a + 1; QueryIdToClient.Add(SearchClients[a].Query.QueryId, SearchClients[a]); queryContext.Querys.Add(SearchClients[a].Query); } var jsonData = requester.PreformSearch(JsonConvert.SerializeObject(queryContext, Formatting.None), Configuration); var result = JsonConvert.DeserializeObject <SearchResultContext <SearchModelBase> >(jsonData, new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.All }); foreach (var searchResult in result.SearchResults) { var client = QueryIdToClient[searchResult.QueryId]; var fcm = new FacetContextMerger <SearchModelBase>(); var genericType = client.GetType().IsGenericType ? client.GetType().GetGenericArguments()[0] : null; fcm.MergeFacets(result.CrawlStamp, searchResult.Facets, client.IncEmptyFacets, client.Lang, genericType); } return(result); }
public SearchResult <T> Search() { var requester = new SearchOperation(); var jsonSerializerSettings = new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.All }; var jsonData = requester.PreformSearch(JsonConvert.SerializeObject(ConvertExpression(), Formatting.None), Configuration); var result = JsonConvert.DeserializeObject <SearchResultContext <T> >(jsonData, jsonSerializerSettings); var fcm = new FacetContextMerger <T>(); fcm.MergeFacets(result.CrawlStamp, result.SearchResults[0].Facets, ((ISearchClient)this).IncEmptyFacets, ((ISearchClient)this).Lang); return(result.SearchResults[0]); }