public virtual IPagedList <Vendor> SearchVendors(Store store, Language language, string keyword, int pageNumber, int pageSize, IEnumerable <SortInfo> sortInfos)
        {
            // TODO: implement indexed search for vendors
            //TODO: Add caching for vendors
            var criteria = new customerDto.MembersSearchCriteria
            {
                SearchPhrase = keyword,
                DeepSearch   = true,
                Skip         = (pageNumber - 1) * pageSize,
                Take         = pageSize
            };

            if (!sortInfos.IsNullOrEmpty())
            {
                criteria.Sort = SortInfo.ToString(sortInfos);
            }
            var vendorSearchResult = _customerApi.SearchVendors(criteria);
            var vendors            = vendorSearchResult.Vendors.Select(x => x.ToVendor(language, store));

            return(new StaticPagedList <Vendor>(vendors, pageNumber, pageSize, vendorSearchResult.TotalCount.Value));
        }
Exemplo n.º 2
0
        public virtual IPagedList <Vendor> SearchVendors(Store store, Language language, string keyword, int pageNumber, int pageSize, IEnumerable <SortInfo> sortInfos)
        {
            // TODO: implement indexed search for vendors
            var criteria = new customerDto.MembersSearchCriteria
            {
                SearchPhrase = keyword,
                DeepSearch   = true,
                Skip         = (pageNumber - 1) * pageSize,
                Take         = pageSize
            };

            if (!sortInfos.IsNullOrEmpty())
            {
                criteria.Sort = SortInfo.ToString(sortInfos);
            }
            var cacheKey = CacheKey.With(GetType(), "SearchVendors", keyword, pageNumber.ToString(), pageSize.ToString(), criteria.Sort);
            var result   = _memoryCache.GetOrCreateExclusive(cacheKey, cacheEntry =>
            {
                return(_customerApi.SearchVendors(criteria));
            });
            var vendors = result.Vendors.Select(x => x.ToVendor(language, store));

            return(new StaticPagedList <Vendor>(vendors, pageNumber, pageSize, result.TotalCount.Value));
        }