コード例 #1
0
        public bool AddProductToShoppingCart(AddProductToShoppingCartModel addProductToShoppingCartModel)
        {
            bool result = false;

            if (addProductToShoppingCartModel.ProductId == 0 || addProductToShoppingCartModel.ShoppingCartId == 0 || addProductToShoppingCartModel.VariantId == 0)
            {
                throw new AddProductToShoppingCartException();
            }

            if (CheckStock(addProductToShoppingCartModel.ProductId, addProductToShoppingCartModel.VariantId, addProductToShoppingCartModel.Quantity))
            {
                lock (ShoppingCartManager.LockShoppingCartByProducts.GetOrAdd(addProductToShoppingCartModel.ShoppingCartId, _ => new object()))
                {
                    //Check stocks before adding products to shoppingcart

                    var shoppingCartItem = this.ShoppingCartServiceContext.ShoppingCartItems
                                           .FirstOrDefault(t => t.ProductId == addProductToShoppingCartModel.ProductId && t.VariantId == addProductToShoppingCartModel.VariantId);

                    if (shoppingCartItem == null)
                    {
                        shoppingCartItem = new Data.Entites.ShoppingCartItem
                        {
                            ProductId      = addProductToShoppingCartModel.ProductId,
                            VariantId      = addProductToShoppingCartModel.VariantId,
                            ShoppingCartId = addProductToShoppingCartModel.ShoppingCartId
                        };

                        this.ShoppingCartServiceContext.ShoppingCartItems.Add(shoppingCartItem);
                    }

                    shoppingCartItem.Quantity += addProductToShoppingCartModel.Quantity;

                    this.ShoppingCartServiceContext.SaveChanges();

                    result = true;
                }
            }

            return(result);
        }
コード例 #2
0
 public AddProductToShoppingCartCommand(Guid id, AddProductToShoppingCartModel model)
 {
     Id    = id;
     Model = model;
 }
コード例 #3
0
 public void AddProductToShoppingCart(AddProductToShoppingCartModel addProductToShoppingCartModel)
 {
     this.ShoppingCartManager.AddProductToShoppingCart(addProductToShoppingCartModel);
 }
コード例 #4
0
        public IActionResult AddProductToCart(Guid id, [FromBody] AddProductToShoppingCartModel model)
        {
            var result = DispatchCommand(new AddProductToShoppingCartCommand(id, model));

            return(result.AsActionResult(NoContent));
        }