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