public ActionResult Index(MemderOrderViewModel Alllist) { bool toint = int.TryParse(((System.Security.Claims.ClaimsIdentity)User.Identity).RoleClaimType, out int UID); if (toint == false) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } var source = db.Members.FirstOrDefault(x => x.MemberID == UID); var odtest = new Order(); if (this.ModelState.IsValid) { //取得目前購物車 using (var transaction = db.Database.BeginTransaction()) { var currentcart = Models.Operation.GetCurrentCart(); //取得目前登入使用者Id var userId = ((System.Security.Claims.ClaimsIdentity)User.Identity).RoleClaimType; try { //建立Order物件 var order = new Order() { MemberID = source.MemberID, RecipientName = Alllist.RecipientName, RecipientAddress = Alllist.RecipientAddress, RecipientPhone = Alllist.RecipientPhone, ShipperID = Alllist.ShipperID, PaymentID = Alllist.PaymentID, OrderDate = DateTime.Now }; //加其入Orders資料表後,儲存變更 db.Orders.Add(order); db.SaveChanges(); odtest = (from o in db.Orders where o.OrderID == order.OrderID select o).ToList().FirstOrDefault(); //取得購物車中OrderDetai物件 var orderDetails = currentcart.ToOrderDetailList(odtest.OrderID); //將其加入OrderDetails資料表後,儲存變更 db.OrderDetails.AddRange(orderDetails); db.SaveChanges(); currentcart.ClearCart(); transaction.Commit(); return(RedirectToAction("Payment", new { id = odtest.OrderID })); } catch (Exception) { transaction.Rollback(); return(Content("訂購失敗")); } } } return(View()); }
// GET: Order public ActionResult Index() { if (User.Identity.IsAuthenticated) { if (Operation.GetCurrentCart().Count == 0) { return(RedirectToAction("Index", "Shop")); } bool toint = int.TryParse(((System.Security.Claims.ClaimsIdentity)User.Identity).RoleClaimType, out int UID); if (toint == false) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } var source = db.Members.FirstOrDefault(x => x.MemberID == UID); var result = new MemderOrderViewModel() { RecipientName = source.Name, RecipientAddress = source.Address, RecipientPhone = source.Phone }; ViewBag.ShipperID = new SelectList(db.Shippers, "ShipperID", "ShipperName"); ViewBag.PaymentID = new SelectList(db.Payments, "PaymentID", "PaymentMethod"); return(View(result)); } else { return(RedirectToAction("Login", "Members")); } }