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());
 }
예제 #2
0
        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);
        }