Ejemplo n.º 1
0
        public void ProcessOrder(Cart cart, ShippingDetails shippingDetails)
        {
            using (SmtpClient smptClient = new SmtpClient())
            {
                smptClient.EnableSsl = emailSettings.UseSSL;
                smptClient.Host = emailSettings.ServerName;
                smptClient.Port = emailSettings.ServerPort;
                smptClient.UseDefaultCredentials = false;

                smptClient.Credentials = new NetworkCredential(emailSettings.UserName, emailSettings.Password);

                if (emailSettings.WriteAsFile)
                {
                    smptClient.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory;
                    smptClient.PickupDirectoryLocation = emailSettings.FileLocation;
                    smptClient.EnableSsl = false;
                }
                StringBuilder body = new StringBuilder();

                body
                    .AppendLine("Размещен новый заказ")
                    .AppendLine("---")
                    .AppendLine("Товары:");
                foreach (CartLine line in cart.Lines)
                {
                    body.AppendFormat("{0} x{1} (Subtotal {2})",line.Product.Name,line.Quantity,line.Product.Price*line.Quantity);
                }

                body.AppendFormat("Итого: {0}", cart.ComputeTotalValue())
                    .AppendLine("---")
                    .AppendLine("Доставка")
                    .AppendLine(shippingDetails.Name)
                    .AppendLine(shippingDetails.Line1)
                    .AppendLine(shippingDetails.Line2 ?? "")
                    .AppendLine(shippingDetails.Line3 ?? "")
                    .AppendLine(shippingDetails.State ?? "")
                    .AppendLine(shippingDetails.City)
                    .AppendLine(shippingDetails.Zip)
                    .AppendLine(shippingDetails.Country)
                    .AppendLine(shippingDetails.Line1)
                    .AppendLine("---")
                    .AppendFormat("GiftWrap: {0}", shippingDetails.GiftWrap ? "Yes" : "No");

                MailMessage mailMessage = new MailMessage(
                    emailSettings.MailFromAdress,
                    emailSettings.MailToAdress,
                    "New Order",
                    body.ToString()
                    );
                if (emailSettings.WriteAsFile)
                {
                    mailMessage.BodyEncoding = Encoding.GetEncoding("iso-8859-1");
                }

                smptClient.Send(mailMessage);

            }
        }
Ejemplo n.º 2
0
 public ViewResult CheckOut(Cart cart, ShippingDetails shippingDetails)
 {
     if (cart.Lines.Count() == 0)
     {
         ModelState.AddModelError("", "Корзина пуста");
     }
     if (ModelState.IsValid)
     {
         orderProcessor.ProcessOrder(cart, shippingDetails);
         cart.Clear();
         return View("Completed");
     }
     else
     {
         return View(shippingDetails);
     }
 }