示例#1
0
        public SearchResponse <TContent> GenericSearch <TContent>(ISearchRequest request) where TContent : IContent
        {
            var cacheKey = request.GetCacheKey();

            var result = ExecuteAndCache(
                GetType().Name + "." + MethodBase.GetCurrentMethod().Name + ":" + cacheKey,
                () =>
            {
                var searchResult = _circruiBreaker.Execute <SearchResponse <TContent> >(
                    () => _searchServices(ServiceEnum.Find).GenericSearch(request) as SearchResponse <TContent>,
                    () => _searchServices(ServiceEnum.Cache).GenericSearch(request) as SearchResponse <TContent>
                    );
                return(searchResult);
            },
                EmptySearchResultsFactory.CreateSearchResponse <TContent>(),
                TimeSpan.FromMilliseconds(SiteSettings.Instance.ExecuteAndCacheTimeOutMilliseconds),
                "search");

            return(result);
        }