public ActionResult Checkout() { using (var db = new Context()) { var firstOrDefault = db.Users.FirstOrDefault(x => x.UserName.Equals(User.Identity.Name)); if (firstOrDefault == null) return View(); var model = new CheckoutViewModel { Lines = GetCart().CartLines, Address = firstOrDefault.Address }; return View(model); } }
public ActionResult Checkout(CheckoutViewModel model) { if (this.ModelState.IsValid) { using (var db = new Context()) { var user = db.Users.FirstOrDefault(x => x.UserName.Equals(User.Identity.Name)); var order = new Order { CreateDate = DateTime.Now, IsPaid = true, User = user, Address = model.Address }; db.Orders.Add(order); foreach (var item in GetCart().Lines) { var detail = new OrderDetail { Count = item.Count, Order = order, ProductName = item.Product.Name }; item.Product.SellCount += item.Count; db.OrderDetails.Add(detail); } order.Price = GetCart().Lines.Sum(x => x.Count * x.Product.Price); GetCart().CartLines.Clear(); db.SaveChanges(); return View("Success", order.Id); } } return View(); }