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 AddressAndPayment()
        {
            var cart = ShoppingCart.GetCart(HttpContext,DataManager);
            if (cart.GetCountItems() == 0) return RedirectToAction("Index", "ShoppingCart");

            var mPayId = DataManager.MethodOfPayments.GetAll().OrderBy(x => x.Id).First().Id;
            var mDelId = DataManager.MethodOfDeliveries.GetAll().OrderBy(x => x.Id).First().Id;
            var model = new Order()
            {
                Total = cart.GetTotal(),
                MethodOfDeliveryId = mDelId,
                MethodOfPaymentId = mPayId,
            };

            if (User.Identity.IsAuthenticated)
            {
                var user = UserManager.FindById(CurrentUserId);
                model.FirstName = user.FirstName;
                model.LastName = user.LastName;
                model.MiddleName = user.MiddleName;
                model.Phone = user.PhoneNumber;
                model.City = user.City;
                model.Email = user.Email;
                model.Country = DataManager.Coutries.SearchFor(t => t.Id == user.CountryId).Single().Name;
            }

            ViewBag.MethodOfDeliveryId =
                new SelectList(DataManager.MethodOfDeliveries.GetAll()
                    .OrderBy(x => x.Id), "Id", "Name", model.MethodOfDeliveryId);
            ViewBag.MethodOfPaymentId = new SelectList(DataManager.MethodOfPayments.GetAll()
                    .OrderBy(x => x.Id), "Id", "Name", model.MethodOfPaymentId);
            return View(model);
        }
 public ActionResult AddressAndPayment(Order model)
 {
     if (ModelState.IsValid)
     {
         var cart = ShoppingCart.GetCart(HttpContext, DataManager);
         if (cart.GetCountItems() == 0) return RedirectToAction("Index", "ShoppingCart");
         var orderId = cart.CreateOrder(model);
         return RedirectToAction("Complete","Checkout",
             new { id = orderId });
     }
     ViewBag.MethodOfDeliveryId =
         new SelectList(DataManager.MethodOfDeliveries.GetAll()
             .OrderBy(x => x.Name), "Id", "Name", model.MethodOfDeliveryId);
     ViewBag.MethodOfPaymentId = new SelectList(DataManager.MethodOfPayments.GetAll()
             .OrderBy(x => x.Name), "Id", "Name", model.MethodOfPaymentId);
     return View(model);
 }