示例#1
0
        public int CreateOrder(Order order)
        {
            decimal orderTotal = 0;

            var cartItems = GetCartItems();

            // Iterate over the items in the cart, adding the order details for each
            foreach (var item in cartItems)
            {
                var orderDetail = new OrderDetail
                {
                    ProductId = item.ProductId,
                    OrderId = order.OrderId,
                    UnitPrice = item.Product.Price,
                    Quantity = item.Count
                };

                // Set the order total of the shopping cart
                orderTotal += (item.Count * item.Product.Price);

                storeDB.OrderDetails.Add(orderDetail);

            }

            // Set the order's total to the orderTotal count
            order.Total = orderTotal;

            // Save the order
            storeDB.SaveChanges();

            // Empty the shopping cart
            EmptyCart();

            // Return the OrderId as the confirmation number
            return Convert.ToInt32(order.OrderId);
        }
示例#2
0
        public ActionResult AddressAndPayment(FormCollection values)
        {
            var order = new Order();
            TryUpdateModel(order);

            try
            {
                if (string.Equals(values["PromoCode"], PromoCode,
                    StringComparison.OrdinalIgnoreCase) == false)
                {
                    return View(order);
                }
                else
                {
                    order.Username = User.Identity.Name;
                    order.OrderDate = DateTime.Now;

                    //Save Order
                    storeDB.Orders.Add(order);
                    storeDB.SaveChanges();

                    //Process the order
                    var cart = ShoppingCart.GetCart(this.HttpContext);
                    cart.CreateOrder(order);

                    return RedirectToAction("Complete",
                        new { id = order.OrderId });
                }

            }
            catch
            {
                //Invalid - redisplay with errors
                return View(order);
            }
        }
示例#3
0
        public ActionResult Order(Order order)
        {
            try
            {
                if (ValidateInput(order))
                {
                    order.OrderDate = DateTime.UtcNow;
                    order.Status = (byte)OrderStatus.New;
                    order.OrderId = Guid.NewGuid();
                    order.Description = order.Description ?? "";
                    ProductOrderViewModel viewData = (ProductOrderViewModel)Session["ProductOrderViewModel"];
                    order.Total = viewData.CartTotal;
                    foreach (var cart in viewData.CartItems)
                    {
                        OrderDetail orderDetail = new OrderDetail();
                        orderDetail.OrderDetailId = Guid.NewGuid();
                        orderDetail.Quantity = cart.Count;
                        orderDetail.UnitPrice = cart.Product.Price;
                        orderDetail.ProductId = cart.ProductId;
                        orderDetail.OrderId = order.OrderId;
                        db.OrderDetails.Add(orderDetail);
                    }

                    db.Orders.Add(order);
                    db.SaveChanges();
                    Session["ProductOrderViewModel"] = null;
                    return Json(new Order { IsSuccess = true, ErrorMessage = "" });
                }
            }
            catch(Exception ex)
            {
                return Json(new Order { IsSuccess = false, ErrorMessage = ErrorMessage });
            }
            return Json(new Order { IsSuccess = false, ErrorMessage = ErrorMessage });
        }