示例#1
0
        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);
        }
示例#2
0
        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);
        }