Advertisement
Guest User

Untitled

a guest
Apr 29th, 2016
212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ASP 3.72 KB | None | 0 0
  1.  using System.Net.Mail;
  2.     using System.Text;
  3.     using SportsStore.Domain.Abstract;
  4.     using SportsStore.Domain.Entities;
  5.     using System.Net;
  6.  
  7.     namespace SportsStore.Domain.Concrete
  8.     {
  9.  
  10.     public class EmailSettings
  11.     {
  12.         public string MailToAddress = "abc@wp.pl";
  13.         public string MailFromAddress = "abcd@wp.pl";
  14.         public bool UseSsl = true;
  15.         public string Username = "abcd@wp.pl";
  16.         public string Password = "abcd12";
  17.         public string ServerName = "smtp.wp.pl";
  18.         public int ServerPort = 465;
  19.         public bool WriteAsFile = false;
  20.         public string FileLocation = @"c:\sports_store_emails";
  21.     }
  22.  
  23.     public class EmailOrderProcessor : IOrderProcessor
  24.     {
  25.         private EmailSettings emailSettings;
  26.  
  27.         public EmailOrderProcessor(EmailSettings settings)
  28.         {
  29.             emailSettings = settings;
  30.         }
  31.  
  32.         public void ProcessOrder(Cart cart, ShippingDetails shippingInfo)
  33.         {
  34.  
  35.             using (var smtpClient = new SmtpClient())
  36.             {
  37.  
  38.                 smtpClient.EnableSsl = emailSettings.UseSsl;
  39.                 smtpClient.Host = emailSettings.ServerName;
  40.                 smtpClient.Port = emailSettings.ServerPort;
  41.                 smtpClient.UseDefaultCredentials = false;
  42.                 smtpClient.Credentials
  43.                     = new NetworkCredential(emailSettings.Username,
  44.                           emailSettings.Password);
  45.  
  46.                 if (emailSettings.WriteAsFile)
  47.                 {
  48.                     smtpClient.DeliveryMethod
  49.                         = SmtpDeliveryMethod.SpecifiedPickupDirectory;
  50.                     smtpClient.PickupDirectoryLocation = emailSettings.FileLocation;
  51.                     smtpClient.EnableSsl = false;
  52.                 }
  53.  
  54.                 StringBuilder body = new StringBuilder()
  55.                     .AppendLine("Nowe zamówienie")
  56.                     .AppendLine("---")
  57.                     .AppendLine("Produkty:");
  58.  
  59.                 foreach (var line in cart.Lines)
  60.                 {
  61.                     var subtotal = line.Product.Price * line.Quantity;
  62.                     body.AppendFormat("{0} x {1} (wartość: {2:c}", line.Quantity,
  63.                                       line.Product.Name,
  64.                                       subtotal);
  65.                 }
  66.  
  67.                 body.AppendFormat("Wartość całkowita: {0:c}", cart.ComputeTotalValue())
  68.                     .AppendLine("---")
  69.                     .AppendLine("Wysyłka dla:")
  70.                     .AppendLine(shippingInfo.Name)
  71.                     .AppendLine(shippingInfo.Line1)
  72.                     .AppendLine(shippingInfo.Line2 ?? "")
  73.                     .AppendLine(shippingInfo.Line3 ?? "")
  74.                     .AppendLine(shippingInfo.City)
  75.                     .AppendLine(shippingInfo.State ?? "")
  76.                     .AppendLine(shippingInfo.Country)
  77.                     .AppendLine(shippingInfo.Zip)
  78.                     .AppendLine("---")
  79.                     .AppendFormat("Pakowanie prezentu: {0}",
  80.                         shippingInfo.GiftWrap ? "Tak" : "Nie");
  81.  
  82.                 MailMessage mailMessage = new MailMessage(
  83.                                        emailSettings.MailFromAddress,   // od
  84.                                        emailSettings.MailToAddress,     // do
  85.                                        "Otrzymano nowe zamówienie!",          // temat
  86.                                        body.ToString());                // treść
  87.  
  88.                 if (emailSettings.WriteAsFile)
  89.                 {
  90.                     mailMessage.BodyEncoding = Encoding.ASCII;
  91.                 }
  92.  
  93.                 smtpClient.Send(mailMessage);
  94.             }
  95.         }
  96.     }
  97.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement