public IActionResult Delete(CartPageViewModel vm)
        {
            var userId = this.User.FindFirst(ClaimTypes.NameIdentifier)?.Value;
            var foundShoppingProduct = _shoppingCartData.FindCartProductById(vm.ShoppingCart.ProductId, userId);

            _shoppingCartData.Delete(foundShoppingProduct);
            return(RedirectToAction("Index", "Cart"));
        }
Exemple #2
0
        public async Task <IActionResult> SaveForLater(int productId)
        {
            var vm     = new CartModel();
            var userId = this.User.FindFirst(ClaimTypes.NameIdentifier)?.Value;

            if (_shoppingCartData.CheckIsExistedInList(productId, userId))
            {
                return(Json(new { success = false, responseText = "The attached file is not supported." }));
            }
            else
            {
                var foundShoppingProduct = _shoppingCartData.FindCartProductById(productId, userId);

                Product foundProduct = _productData.FindProductById(productId);
                _shoppingCartData.Delete(foundShoppingProduct);
                SaveForLater foundSaveForLater = _shoppingCartData.SaveForLater(productId, userId);
                vm = await InitModel(userId);

                return(Json(vm));
            }
        }
        public async Task <IActionResult> AddToCart(ClientProductPageViewModel vm)
        {
            var userId = this.User.FindFirst(ClaimTypes.NameIdentifier)?.Value;

            vm.EventCommand = "list";
            if (!string.IsNullOrEmpty(userId))
            {
                var currentUser = await _userManager.FindByIdAsync(userId);

                var foundProduct         = _ProductData.FindProductById(vm.SaveToCartProductId);
                var foundShoppingProduct = _shoppingCartData.FindCartProductById(vm.SaveToCartProductId, userId);

                //if shopping cart dosen't have this product and product inventory is greater than 0
                //simply save to cart
                if (foundShoppingProduct == null && foundProduct.Quantity > 0)
                {
                    _ProductData.SaveToCart(vm.SaveToCartProductId, currentUser.Id);
                    var foundqQty = _shoppingCartData.GetUserTotalSavedItems(userId);
                    return(Json(new { success = true, message = "Add To Our Cart Now", qty = foundqQty }));
                }
                //if we don't have any instcok or custom already put all qty in her/his cart
                //we don't nothing
                else if (foundProduct.Quantity == 0 || foundProduct.Quantity == foundShoppingProduct.Qty)
                {
                    vm.EventCommand = "list";
                    var foundqQty = _shoppingCartData.GetUserTotalSavedItems(userId);
                    return(Json(new { success = false, message = "We don't have too much in stock for now", qty = foundqQty }));
                }
                else
                {
                    _shoppingCartData.ModifyQty(foundShoppingProduct, foundShoppingProduct.Qty + 1);
                    var foundqQty = _shoppingCartData.GetUserTotalSavedItems(userId);
                    return(Json(new { success = true, message = "You already add this in your cart. I add one more qty for you", qty = foundqQty }));
                }
            }
            else
            {
                return(Json(new { success = false, message = "Please Login in first", qty = 0 }));
            }
        }