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)); }
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)); }