public ActionResult CheckOut(FormCollection form) { var order = new OrderHeader(); order.OrderDate = DateTime.Now; if (TryUpdateModel(order)) { var orderViewModel = new OrderConfirmViewModel { Order = order, CartItems = this.CartItems }; return View("Confirm", orderViewModel); } return View(); }
public ActionResult Confirm(FormCollection form) { if (CartItems.Count <= 0) return RedirectToAction("Index", "Cart"); var order = new OrderHeader(); order.OrderDate = DateTime.Now; if (TryUpdateModel(order)) { var orderViewModel = new OrderConfirmViewModel { Order = order, CartItems = this.CartItems }; return View(orderViewModel); } return View("CheckOut"); }
public ActionResult Finish(FormCollection form) { if (CartItems.Count <= 0) return RedirectToAction("Index", "Cart"); var order = new OrderHeader(); order.OrderDate = DateTime.Now; if (TryUpdateModel(order)) { order.OrderDetails = GetOrderDetails(); order.TotalPrice = CartItems.Sum(item => item.Price); order.Member = db.Members.First(m => m.Email == User.Identity.Name); order.OrderStatus = db.OrderStatuses.First(os => os.Id == 1); StockSellOut(order); db.Orders.Add(order); db.SaveChanges(); CartItems.Clear(); TempData["OrderId"] = order.Id; SendFinishedOrderMail(order); return RedirectToAction("Finish"); } return View("CheckOut"); }
private void StockSellOut(OrderHeader order) { foreach (var od in order.OrderDetails) { od.Album.Stock -= od.Amount; } }
private bool SendFinishedOrderMail(OrderHeader order) { try { string mailBody = System.IO.File.ReadAllText(Server.MapPath("~/App_Data/FinishedOrderMail.html")); mailBody = mailBody.Replace("{{OrderId}}", order.Id.ToString()); mailBody = mailBody.Replace("{{Name}}", db.Members.First(m => m.Email == User.Identity.Name).Name); mailBody = mailBody.Replace("{{OrderDate}}", order.OrderDate.ToShortDateString()); mailBody = mailBody.Replace("{{ContactName}}", order.ContactName); mailBody = mailBody.Replace("{{ContactAddress}}", order.Zipcode + order.City + order.State + order.ContactAddress); mailBody = mailBody.Replace("{{ContactPhone}}", order.ContactPhone); var smtpSever = new SmtpClient("smtp.gmail.com"); smtpSever.Port = 587; smtpSever.Credentials = new System.Net.NetworkCredential("*****@*****.**", "exile0204"); smtpSever.EnableSsl = true; var mailMsg = new MailMessage { From = new MailAddress("*****@*****.**"), Subject = "(RockRecord)您訂購了我們的產品", Body = mailBody, IsBodyHtml = true }; mailMsg.To.Add(new MailAddress(User.Identity.Name)); smtpSever.Send(mailMsg); return true; } catch (Exception ex) { return false; } }