private bool addToCart()
        {
            List <Product_Cart> myCart = new List <Product_Cart>();

            if (Session["CART"] != null)
            {
                myCart = (List <Product_Cart>)Session["CART"];
            }

            if (Session["USER"] != null)
            {
                User_Account userAccount = (User_Account)Session["USER"];
                ICollection <Product_Cart> productCarts   = userAccount.Product_Cart;
                Product_CartDAL            productCartDal = new Product_CartDAL();

                foreach (var myProduct in myCart)
                {
                    int productId = myProduct.Product_ID;
                    int quantity  = (int)myProduct.Quantity;

                    ProductDAL productDal = new ProductDAL();
                    Product    product    = productDal.getProductById(productId);

                    bool isContain = false;
                    foreach (var item in productCarts)
                    {
                        if (item.Product_ID == productId)
                        {
                            isContain = true;
                            if (item.Quantity + quantity <= product.Products_Available)
                            {
                                item.Quantity += quantity;
                                productCartDal.updateQuantity(item);
                            }
                            else
                            {
                                item.Quantity = product.Products_Available;
                                productCartDal.updateQuantity(item);
                            }
                            break;
                        }
                    }

                    if (!isContain)
                    {
                        Product_Cart productCart = new Product_Cart()
                        {
                            Email      = userAccount.Email,
                            Quantity   = quantity,
                            Product_ID = productId,
                            Product    = product,
                        };
                        productCarts.Add(productCart);
                        productCartDal.addProductCart(productCart);
                    }
                }
            }
            else
            {
                return(false);
            }
            return(true);
        }
        public ActionResult Add(FormCollection f)
        {
            string quantityStr = f["myNumber"];
            Int32  quantity    = Convert.ToInt32(quantityStr);

            string productIdStr = f["productId"];
            int    productId    = int.Parse(productIdStr);

            ProductDAL productDal = new ProductDAL();
            Product    product    = productDal.getProductById(productId);

            if (quantity > product.Products_Available)
            {
                Session["ADD_ERROR"] = "This product has only " + product.Products_Available + " items";
                return(RedirectToAction("ProductDetails", "Product", new { productIDStr = @product.Product_ID + "" }));
            }

            if (Session["USER"] != null)
            {
                User_Account userAccount = (User_Account)Session["USER"];
                ICollection <Product_Cart> productCarts   = userAccount.Product_Cart;
                Product_CartDAL            productCartDal = new Product_CartDAL();

                bool isContain = false;
                foreach (var item in productCarts)
                {
                    if (item.Product_ID == productId)
                    {
                        isContain = true;
                        if (item.Quantity + quantity > product.Products_Available)
                        {
                            Session["ADD_ERROR"] = "This product has only " + (product.Products_Available - item.Quantity) + " items";
                            return(RedirectToAction("ProductDetails", "Product", new { productIDStr = @product.Product_ID + "" }));
                        }
                        item.Quantity += quantity;
                        productCartDal.updateQuantity(item);
                        break;
                    }
                }

                if (!isContain)
                {
                    Product_Cart productCart = new Product_Cart()
                    {
                        Email      = userAccount.Email,
                        Quantity   = quantity,
                        Product_ID = productId,
                        Product    = product,
                    };
                    productCarts.Add(productCart);
                    productCartDal.addProductCart(productCart);
                }
            }
            else
            {
                List <Product_Cart> myCart = new List <Product_Cart>();
                if (Session["CART"] != null)
                {
                    myCart = (List <Product_Cart>)Session["CART"];
                }

                Product_Cart productCart = null;
                foreach (var item in myCart)
                {
                    if (productIdStr.Equals(item.Product_ID + ""))
                    {
                        productCart = item;
                        break;
                    }
                }

                if (productCart != null)
                {
                    if (productCart.Quantity + quantity > product.Products_Available)
                    {
                        Session["ADD_ERROR"] = "This product has only " + (product.Products_Available - productCart.Quantity) + " items";
                        return(RedirectToAction("ProductDetails", "Product", new { productIDStr = @product.Product_ID + "" }));
                    }
                    productCart.Quantity += quantity;
                }
                else
                {
                    productCart = new Product_Cart()
                    {
                        Quantity   = quantity,
                        Product_ID = productId,
                        Product    = product,
                    };
                    myCart.Add(productCart);
                }
                Session["CART"] = myCart;
            }
            return(RedirectToAction("ViewCart", "Cart"));
        }