public async Task Get(string key, CartDetailedResponseDto response) { if (response == null) { return; } await _service.CacheResponseAsync(key, response, TimeSpan.FromSeconds(599)); }
public async Task <IActionResult> GetItemsFromCart() { int userId = Convert.ToInt32(HttpContext.Items["userId"]); CartDetailedResponseDto cartItem = await _service.Get(userId); return(Ok(new Response <CartDetailedResponseDto> { StatusCode = (int)HttpStatusCode.OK, Message = ResponseMessage.SUCCESSFUL, Data = cartItem })); }
/// <summary> /// Gets the cart using specified user identifier. /// </summary> /// <param name="userId">The user identifier.</param> /// <returns></returns> public async Task <CartDetailedResponseDto> Get(int userId) { List <CartResponseDto> carts = await _repository.Get(userId); CartDetailedResponseDto responseDto = new CartDetailedResponseDto { cartItems = carts, Total = carts.Aggregate(0, (seed, item) => item.Cost + seed) }; await _cacheRepository.Get(userId.ToString(), responseDto); return(responseDto); }
public async Task DeleteAsync(string key, int bookId) { CartDetailedResponseDto cartDetailed = JsonConvert .DeserializeObject <CartDetailedResponseDto>(await _service .GetCachedResponseAsync(key) ); if (cartDetailed == null) { return; } cartDetailed.cartItems.Remove(cartDetailed.cartItems.FirstOrDefault(item => item.Book.Id == bookId)); await _service.CacheResponseAsync(key, cartDetailed, TimeSpan.FromSeconds(600)); }
public async Task AddAsync(string key, CartResponseDto cart) { string cachedData = await _service .GetCachedResponseAsync(key); if (cachedData == null) { return; } CartDetailedResponseDto cartDetailed = JsonConvert .DeserializeObject <CartDetailedResponseDto>(cachedData ); cartDetailed.cartItems.Add(cart); await _service.CacheResponseAsync(key, cartDetailed, TimeSpan.FromSeconds(600)); }
public async Task UpdateAsync(string key, CartResponseDto requestDto, int bookId) { CartDetailedResponseDto cartDetailed = JsonConvert .DeserializeObject <CartDetailedResponseDto>(await _service .GetCachedResponseAsync(key) ); if (cartDetailed == null) { return; } foreach (var item in cartDetailed.cartItems.Where(cart => cart.Book.Id == bookId)) { item.ItemQuantity = requestDto.ItemQuantity; } await _service.CacheResponseAsync(key , cartDetailed , TimeSpan.FromSeconds(600)); }