public ActionResult CheckOut() { var user = (Customer)_userService.GetCurrentUser(); if (user != null) { var model = new OrderModel { FirstName = user.FirstName, LastName = user.LastName, Email = user.Email, PostalCode = user.PostalCode, Country = user.Country, City = user.City, Address = user.Address, Phone = user.Phone }; return View(model); } return View(new OrderModel()); }
public static Order ConvertToOrder(OrderModel order) { if (order == null) return new Order(); return new Order() { Id = order.Id, Sum = order.Sum, Date = order.Date, Email = order.Email, FirstName = order.FirstName, LastName = order.LastName, PostalCode = order.PostalCode, Country = order.Country, City = order.City, Address = order.Address, Phone = order.Phone, OrderWatches = order.OrderWatches //Watches = order.Watches }; }
public ActionResult EditOrder(OrderModel orderModel) { if (ModelState.IsValid) { Order order = OrderModel.ConvertToOrder(orderModel); _orderService.EditOrder(order); ViewBag.Message = "has been saved"; TempData["message"] = string.Format("{0} has been saved", order.Id); return RedirectToAction("GetAllOrders"); } return View(orderModel); }
public ActionResult CheckOut(OrderModel model) { if (ModelState.IsValid) { if (!GetCart().CartLines().Any()) { ModelState.AddModelError("", "Sorry your cart is empty"); } else { Order order = OrderModel.ConvertToOrder(model); order.Sum = GetCart().ComputeTotalPrice(); _orderService.MakeOrder(order); foreach (var item in GetCart().CartLines()) { var watch = _watchService.GetById(item.Watch.Id); _orderService.MakeDependency(order, watch, item.Quantity); } //foreach (var id in GetAnotherCart().GetAllWatchIds()) //{ // var watch = _watchService.GetById(id); // model.Watches.Add(watch); //} var message = new MailMessage(); message.To.Add(new MailAddress(order.Email)); // replace with valid value message.From = new MailAddress("*****@*****.**"); // replace with valid value message.Subject = String.Format("Order №{0}", order.Id); var watchesInOrder = order.OrderWatches.ToList(); var details = "<table class='table'>" + "<thead>" + "<tr>" + "<th>Quantity</th>" + "<th>Name</th>" + "<th>Price</th>" + "<th>SubTotal</th>" + "</tr>" + "</thead>" + "<tbody>"; foreach (var item in watchesInOrder) { details += "<tr>" + "<td>" + item.Quantity + "</td>" + "<td>" + item.Watch.Name + "</td>" + "<td>" + item.Watch.Price + "</td>" + "<td>" + item.Watch.Price * item.Quantity + "</td>" + "</tr>"; } details += "</tbody>"; details += "<tfoot>" + "<tr>" + "<td>" + order.Sum + "</td>" + "</tr>" + "</tfoot>"; details += "</table>"; message.Body = String.Format("<p>Dear {0}</p>" + "We thank you for your order.The order is in process of execution and it will be dispatched soon" + "{1}", model.FirstName, details); message.IsBodyHtml = true; using (var smtp = new SmtpClient()) { var credential = new NetworkCredential { UserName = "******", // replace with valid value Password = "******" // replace with valid value }; smtp.UseDefaultCredentials = false; smtp.Credentials = credential; smtp.Host = "smtp.gmail.com"; smtp.Port = 587; smtp.EnableSsl = true; smtp.Send(message); } GetCart().Clear(); return View("Completed"); } } return View(model); }