public async Task <PagedList <InventoryDto> > GetInventoryForUserAsync(int userId, GetInventoryParameters getInventoryParameters) { PagedList <InventoryDto> result; string key = "user:"******"|inventoryList" + "|pageNumber" + getInventoryParameters.PageNumber + "|pageSize:" + getInventoryParameters.PageSize + (!string.IsNullOrEmpty(getInventoryParameters.Sku) ? "|sku:" + getInventoryParameters.Sku : "") + (getInventoryParameters.MaximumQuantity.HasValue ? "|maximumQuantity:" + getInventoryParameters.MaximumQuantity.Value:"") + (getInventoryParameters.ProductId.HasValue ? "|productId:" + getInventoryParameters.ProductId.Value : ""); var cachedResults = await _cacheStorage.GetObjectAsync <PagedList <InventoryDto> >(key); if (cachedResults != null) { result = cachedResults; } else { var productsForUserFromRepo = await _inventoryRepository.GetInventoryForUserAsync(userId, getInventoryParameters); result = Mapper.Map <PagedList <InventoryDto> >(productsForUserFromRepo); await _cacheStorage.SetStringAsync(key, JsonConvert.SerializeObject(result)); } return(result); }
public async Task <PagedList <ProductForListDto> > GetProductsForUserAsync(int userId, GetProductParameters getProductParameters) { PagedList <ProductForListDto> result; string key = "user:"******"|productList" + "|pageNumber:" + getProductParameters.PageNumber + "|pageSize:" + getProductParameters.PageSize; var cachedResults = await _cacheStorage.GetObjectAsync <PagedList <ProductForListDto> >(key); if (cachedResults != null) { result = cachedResults; } else { var productsForUserFromRepo = await _productRepository.GetProductsForUserAsync(userId, getProductParameters); result = Mapper.Map <PagedList <ProductForListDto> >(productsForUserFromRepo); await _cacheStorage.SetStringAsync(key, JsonConvert.SerializeObject(result)); } return(result); }