Пример #1
0
 public async Task Get(string key, CartDetailedResponseDto response)
 {
     if (response == null)
     {
         return;
     }
     await _service.CacheResponseAsync(key, response, TimeSpan.FromSeconds(599));
 }
Пример #2
0
        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
            }));
        }
Пример #3
0
        /// <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);
        }
Пример #4
0
        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));
        }
Пример #5
0
        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));
        }
Пример #6
0
        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));
        }