public ActionResult Delete(int?productId)
        {
            // Get the connected user
            User usrConnected = (User)HttpContext.Session["user"];

            // Get the user by the id and remove it from the database
            Product          product   = db.Products.Find(productId);
            Order            order     = null;
            ProductsPerOrder prdPerOrd = null;

            if (usrConnected != null)
            {
                order = db.Orders.SingleOrDefault(x => x.UserId == usrConnected.UserId && x.isOpen == true);
            }

            if (product != null && order != null)
            {
                prdPerOrd = db.ProductsPerOrder.FirstOrDefault(x => x.OrderId == order.OrderId && x.ProductId == product.ProductId);
            }

            if (prdPerOrd == null)
            {
                ViewBag.errorMsg = "המוצר אינו קיים בהזמנה, אנא רענן את העמוד";
            }
            else
            {
                db.ProductsPerOrder.Remove(prdPerOrd);
                db.SaveChanges();
            }

            // Redirect to Cart page
            return(RedirectToAction("Index", "Order"));
        }
Пример #2
0
        public ActionResult AddProduct(int?productId)
        {
            if (productId == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            // Get the product by the id
            Product product = db.Products.Find(productId);

            if (product == null)
            {
                ViewBag.errorMsg = "המוצר אינו קיים במערכת, אנא רענן את העמוד";
                return(View("~/Views/Product/Index.cshtml"));
            }
            else
            {
                Order ord        = null;
                bool  isNewOrder = false;

                // Get the connected user
                User usrConnected = (User)HttpContext.Session["user"];

                if (usrConnected != null)
                {
                    // Check if this user has already an open order
                    ord = db.Orders.SingleOrDefault(x => x.UserId == usrConnected.UserId && x.isOpen == true);
                    User usrToAttach = db.Users.SingleOrDefault(x => x.UserId == usrConnected.UserId);
                    // If the user doesn't have any open order than create new one
                    if (ord == null)
                    {
                        isNewOrder = true;
                        ord        = new Order()
                        {
                            isOpen = true,
                            UserId = usrToAttach.UserId,
                            User   = usrToAttach,
                        };
                    }

                    // Add the product to the order
                    ProductsPerOrder prdPerOrd = new ProductsPerOrder()
                    {
                        OrderId   = ord.OrderId,
                        Order     = ord,
                        ProductId = product.ProductId,
                        Product   = product
                    };
                    db.ProductsPerOrder.Add(prdPerOrd);

                    if (isNewOrder)
                    {
                        db.Orders.Add(ord);
                    }

                    db.SaveChanges();

                    return(View());
                }
                else
                {
                    return(View("~/Views/User/Login.cshtml"));
                }
            }
        }