public async Task <CartItemDto> CreateCartItem(CartItemDto dto) { var cartItem = _mapper.Map <CartItem>(dto); cartItem = await _cartRepository.CreateCartItem(cartItem); return(dto); }
public async Task <CartItemDto> AddToCart(CartItemDto dto, string userId) { var userCartItems = await _cartRepository.GetUserCartItems(userId); bool isAlreadyInCart = userCartItems.Any(ci => ci.ProductId == dto.ProductId); if (!isAlreadyInCart) { await CreateCartItem(dto); } else { var cartItem = await _cartRepository.GetCartItemAlreadyInCart(dto.ProductId, userId); cartItem.Quantity += dto.Quantity; await _cartRepository.UpdateCartItem(cartItem); } return(dto); }