public async Task <IActionResult> GetProductsForUser(GetProductParameters productParameters)
        {
            var user = await _userManager.GetUserAsync(HttpContext.User);

            var result = await _cachingProductStore.GetProductsForUserAsync(user.Id, productParameters);

            return(View(result));
        }
Beispiel #2
0
        public Task <PagedList <Product> > GetProductsForUserAsync(int userId, GetProductParameters getProductParameters)
        {
            var collectionBeforePaging =
                _context.Products
                .Include(p => p.Inventories)
                .Where(p => p.Admin.Id == userId)
                .OrderBy(a => a.ProductName)
                .AsNoTracking()
                .AsQueryable();

            return(PagedList <Product> .CreateAsync(collectionBeforePaging,
                                                    getProductParameters.PageNumber,
                                                    getProductParameters.PageSize));
        }
Beispiel #3
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);
        }