public ActionResult AddressAndPayment(OrdersViewModel vm, FormCollection values)
        {
            var order = new Order();
            var cart = ShoppingCart.GetCart(HttpContext);

            TryUpdateModel(order);

            try
            {
                order.Username = User.Identity.Name;
                order.OrderDate = DateTime.Now;
                order.IsProcessed = false;
                order.Total = cart.GetTotal();
                //Save Order
                UoW.Orders.Add(order);
                UoW.SaveChanges();

                //Process the order
                cart.CreateOrder(order);
                TempData["toast"] = "<script> $(document).ready(function () {" +
                             "toastr.options = { 'positionClass': 'toast-bottom-right' };" +
                             "toastr.success('Order has been sent for processing!');});</script>";

                return RedirectToAction("Complete",
                    new { id = order.OrderId });
            }
            catch (Exception e)
            {
                //Invalid - redisplay with errors
                return View(vm);
            }
        }
Esempio n. 2
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
                {
                    GameId = item.GameId,
                    OrderId = order.OrderId,
                    UnitPrice = item.Games.Price,
                    Quantity = item.Count
                };

                // Set the order total of the shopping cart
                orderTotal += (item.Count * item.Games.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 order.OrderId;
        }