Exemplo n.º 1
0
        public ActionResult DeleteOrder(int id)
        {
            
            Order order;
            List<Order_Detail> orderDetails;
            List<Order> orders;
            using (NorthwindConnection db = new NorthwindConnection())
            {
                order = db.Orders.SingleOrDefault(x => x.OrderID == id);
                if (order.ShippedDate > DateTime.Now)
                {
                    
                    orderDetails = db.Order_Details.Where(x => x.OrderID == id).ToList();
                    List<int> prodIds = new List<int>();
                    foreach (var orderDetail in orderDetails)
                    {
                        prodIds.Add(orderDetail.ProductID);
                    }
                    foreach (var prodId in prodIds)
                    {
                        db.DeleteOrderDetail(id, prodId);
                    }

                    db.DeleteOrder(id);
                    orders = db.Orders.ToList();
                    return RedirectToAction("Index", "Home");
                }
                else
                {
                    return View();
                }
                
            }
        }
Exemplo n.º 2
0
        public ActionResult ChangeAmount(int orderId, int productId, string change, short amount)
        {
            Order order;
            List<Order_Detail> orderDetail;
            Customer customer;
            List<Product> products;
            List<Category> categories;
            using (NorthwindConnection db = new NorthwindConnection())
            {
                categories = db.Categories.ToList();
                products = db.Products.ToList();
                order = db.Orders.SingleOrDefault(o => o.OrderID == orderId);
                orderDetail = GetOrderDetails(db, order.OrderID);
                    
                short quantity = orderDetail.SingleOrDefault(x => x.ProductID == productId).Quantity;
                if (change == "add")
                {
                    quantity += amount;
                }
                else
                {
                    if ((quantity - amount) > 0)
                    {
                        quantity -= amount;
                    }
                    else
                    {
                        quantity = 0;
                    }
                }
                if (quantity > 0)
                {
                    orderDetail.SingleOrDefault(x => x.ProductID == productId).Quantity = quantity;
                }
                else
                {
                    Order_Detail rowToRemove = orderDetail.SingleOrDefault(x => x.ProductID == productId);
                    orderDetail.Remove(rowToRemove);
                    db.DeleteOrderDetail(order.OrderID, productId);
                }
                customer = db.Customers.SingleOrDefault(c => c.CustomerID == order.CustomerID);
                db.SaveChanges();
            }

            OrderDetailsModel model = new OrderDetailsModel();
            model.Order = order;
            model.OrderDetails = orderDetail;
            model.Customer = customer;
            model.Products = products;
            model.categories = categories.Select(x => new SelectListItem()
            {
                Value = x.CategoryID.ToString(),
                Text = x.CategoryName
            });

            return PartialView("_OrderDetails", model);
        }