public async Task <IActionResult> AddCartItemAsync(int userId, int cartId, Cart_Items_Entity cartItem)
        {
            if (!_shopCartService.checkIfShopCartitemExist(userId, cartId, cartItem.BookId))
            {
                await _shopCartService.AddCartItemAsync(userId, cartId, cartItem);

                var result = await _shopCartService.GetShopCartByIdAsync(userId, cartId);

                var location = _linkGanarator.GetPathByAction("GetShopCartByIdAsync", "ShopCart", new { userId, cartId });
                return(Created(location, result));
            }
            else
            {
                return(BadRequest("this item already exists in user's shopping cart"));
            }
        }
        public async Task <Cart_Items_Entity> EditCartItemAsync(int userId, int cartId, int itemId, Cart_Items_Entity cartItem)
        {
            var shopCartModel = await _context.Shopping_Carts
                                .FirstOrDefaultAsync(m => m.User.UserId == userId && m.CartId == cartId && m.IsOrder == false);

            var cartItemModel = await _context.Cart_Items.Include(e => e.Shop_Carts)
                                .FirstOrDefaultAsync(e => e.ItemId == itemId && e.CartId == shopCartModel.CartId);

            var newModel = Mapping.Mapper.Map(cartItem, cartItemModel);
            await _context.SaveChangesAsync();

            var result = Mapping.Mapper.Map <Cart_Items_Entity>(newModel);

            //result.SupplierId = supplierId;
            return(result);
        }
        public async Task <Cart_Items_Entity> AddCartItemAsync(int userId, int cartId, Cart_Items_Entity cartItem)
        {
            var shopCartModel = await _context.Shopping_Carts.FirstOrDefaultAsync(m => m.User.UserId == userId && m.CartId == cartId && m.IsOrder == false);

            var newCartItem = Mapping.Mapper.Map <Cart_items>(cartItem);

            await _context.Cart_Items.AddAsync(newCartItem);

            await _context.SaveChangesAsync();


            newCartItem.Shop_Carts = shopCartModel;
            await _context.SaveChangesAsync();

            var result = await _context.Cart_Items.Include(e => e.Shop_Carts)
                         .FirstOrDefaultAsync(e => e.ItemId == newCartItem.ItemId);

            return(Mapping.Mapper.Map <Cart_Items_Entity>(result));
        }
        public async Task <ActionResult <Cart_Items_Entity> > EditCartItemAsync(int userId, int cartId, int itemId, Cart_Items_Entity cartItem)
        {
            //if (_userRolesService.CheckIfNewUserRoleExist(userRole))
            //{
            var model = await _shopCartService.EditCartItemAsync(userId, cartId, itemId, cartItem);

            //var result = _mapper.Map<CatalogsEntity>(catalogs);
            var location = _linkGanarator.GetPathByAction("GetShopCartByIdAsync", "ShopCart", new { userId, cartId });

            return(model);
        }