예제 #1
0
        public int CreateOrder(Order order)
        {
            var c = new OrderDetail();

            order.OrderDate = DateTime.Now;
            order.OrderStatusId = 1; // новый заказ => статус не обработано
            order.Total = GetTotal(); // общую сумму пересчитаем!!!
            DataManager.Orders.Insert(order);  //  запишем заказ в базу данных
            //----------------------------------------------------------------//
            // в таблицу OrderDetail запишем подробности нашего заказа
            var cartItems = GetCartItems();
            foreach (var orderDetail in cartItems.Select(item => new OrderDetail
            {
                OrderId = order.Id,
                UnitPrice = item.Price,
                Quantity = item.Count,
                ProductId =  item.ProductId,

            }))
            {
                DataManager.OrderDetails.Insert(orderDetail);
            }
             //-----------------------------------------------------------------//

            EmptyCart(); // после оформления заказа необходимо очистить корзину !
            return order.Id;
        }
 public ActionResult EditItemFromOrderDetails(OrderDetail model)
 {
     if (ModelState.IsValid)
     {
         var original = db.OrderDetails.Single(t => t.Id == model.Id);
         if (original != null)
         {
             if (original.Quantity != model.Quantity || Math.Abs(original.UnitPrice - model.UnitPrice) > 0)
                 original.Quantity = model.Quantity;
             original.UnitPrice = model.UnitPrice;
             db.SaveChanges();
             var order = db.Orders.Single(t => t.Id == original.OrderId);
             var list = db.OrderDetails.Where(t => t.OrderId == order.Id).ToList();
             var total = (from d in list select d.UnitPrice*d.Quantity).Sum();
             order.Total = total;
             db.SaveChanges();
             return RedirectToAction("EditListOrder", "ManagerOrder", new {id = order.Id});
         }
     }
     return View(model);
 }