public async Task <IPagedList <FulfillmentCenter> > SearchFulfillmentCentersAsync(FulfillmentCenterSearchCriteria criteria) { var criteriaDto = new inventoryDto.FulfillmentCenterSearchCriteria { SearchPhrase = criteria.SearchPhrase, Skip = (criteria.PageNumber - 1) * criteria.PageSize, Take = criteria.PageSize, Sort = criteria.Sort }; var searchResult = await _inventoryApi.SearchFulfillmentCentersAsync(criteriaDto); var centers = searchResult.Results.Select(x => x.ToFulfillmentCenter()); return(new StaticPagedList <FulfillmentCenter>(centers, criteria.PageNumber, criteria.PageSize, searchResult.TotalCount.Value)); }
public async Task <IPagedList <FulfillmentCenter> > SearchFulfillmentCentersAsync(FulfillmentCenterSearchCriteria criteria) { var cacheKey = CacheKey.With(GetType(), "SearchFulfillmentCenters", criteria.GetCacheKey()); return(await _memoryCache.GetOrCreateExclusiveAsync(cacheKey, async (cacheEntry) => { cacheEntry.AddExpirationToken(InventoryCacheRegion.CreateChangeToken()); cacheEntry.AddExpirationToken(_apiChangesWatcher.CreateChangeToken()); var criteriaDto = new inventoryDto.FulfillmentCenterSearchCriteria { SearchPhrase = criteria.SearchPhrase, Skip = (criteria.PageNumber - 1) * criteria.PageSize, Take = criteria.PageSize, Sort = criteria.Sort }; var searchResult = await _inventoryApi.SearchFulfillmentCentersAsync(criteriaDto); var centers = searchResult.Results.Select(x => x.ToFulfillmentCenter()); return new StaticPagedList <FulfillmentCenter>(centers, criteria.PageNumber, criteria.PageSize, searchResult.TotalCount.Value); })); }