Exemplo n.º 1
0
        public ActionResult Create([Bind(Include = "ShipToFirstName,ShipToLastName,Address,City,State,ZipCode,Country,Phone")] Order order)
        {
            var user         = db.Users.Find(User.Identity.GetUserId());
            var shoppingcart = db.ShoppingCarts.Where(s => s.CustomerId == user.Id).ToList();

            //decimal totalAmt = 0;
            if (shoppingcart.Count != 0)
            {
                if (ModelState.IsValid)
                {
                    foreach (var product in shoppingcart)
                    {
                        OrderDetail orderDetail = new OrderDetail();
                        orderDetail.ItemId    = product.ItemId;
                        orderDetail.OrderId   = order.Id;
                        orderDetail.Quantity += product.Count;
                        orderDetail.UnitPrice = product.Item.Price;
                        //totalAmt += (product.Count * product.Item.Price);
                        db.OrderDetails.Add(orderDetail);
                    }

                    order.Total     = CartHelper.CalcSubTotal();
                    order.Tax       = CartHelper.Tax();
                    order.Shipping  = CartHelper.Shipping();
                    order.Completed = false; //should this be false or true??
                    //delete items from cart after order completes somehow?
                    order.OrderDate  = DateTime.Now;
                    order.CustomerId = user.Id;
                    db.Orders.Add(order);
                    db.SaveChanges();

                    this.Complete(order.Id);

                    var myOrder = db.Orders.Where(o => o.Id == order.Id).Include("Customer").Single();
                    return(View("Receipt", myOrder));
                }
            }
            ViewBag.NoItem = "There are no items to order";
            return(View(order));
        }