Advertisement
Guest User

Untitled

a guest
Nov 17th, 2017
5,214
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.05 KB | None | 0 0
  1. public string MailToAdress = "przemek7799@gmail.com";
  2. public string MailFromAdress = "przemek7799@gmail.com";
  3. public bool UseSsl = true;
  4. public string Username = "przemek7799@gmail.com";
  5. public string Password = "";
  6. public string ServerName = "smtp.gmail.com";
  7. public int ServerPort = 587;
  8. public bool WriteAsFile = false;
  9. public string FileLocation = @"C:\Users\przem\Desktop\aaa";
  10. }
  11.  
  12. public class EmailOrderProcessor : IOrderProcessor
  13. {
  14. private EmailSettings emailSettings;
  15. public EmailOrderProcessor(EmailSettings settings)
  16. {
  17. emailSettings = settings;
  18. }
  19. public void ProcessOrder(Cart cart, ShippingDetails shippingDetails)
  20. {
  21. using(var smtpClient = new SmtpClient())
  22. {
  23. smtpClient.EnableSsl = emailSettings.UseSsl;
  24. smtpClient.Host = emailSettings.ServerName;
  25. smtpClient.Port = emailSettings.ServerPort;
  26. smtpClient.UseDefaultCredentials = false;
  27. smtpClient.Credentials = new NetworkCredential(emailSettings.Username, emailSettings.Password);
  28.  
  29. if (emailSettings.WriteAsFile)
  30. {
  31. smtpClient.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory;
  32. smtpClient.PickupDirectoryLocation = emailSettings.FileLocation;
  33. smtpClient.EnableSsl = false;
  34. }
  35. StringBuilder body = new StringBuilder().AppendLine("Nowe zamówienie").AppendLine("---").Append("Produkty");
  36. foreach(var line in cart.Lines)
  37. {
  38. var subtotal = line.Product.Price * line.Quantity;
  39. body.AppendFormat("{0} x {1} (wartość: {2:c}", line.Quantity, line.Product.Name, subtotal);
  40. }
  41.  
  42. body.AppendFormat("Wartośc całkowita: {0:c}", cart.ComputeTotalValue())
  43. .AppendLine("---")
  44. .AppendLine("Wysyłka dla:")
  45. .AppendLine(shippingDetails.Name)
  46. .AppendLine(shippingDetails.Line1)
  47. .AppendLine(shippingDetails.Line2 ?? "")
  48. .AppendLine(shippingDetails.Line3 ?? "")
  49. .AppendLine(shippingDetails.City)
  50. .AppendLine(shippingDetails.State ?? "")
  51. .AppendLine(shippingDetails.Country)
  52. .AppendLine(shippingDetails.Zip)
  53. .AppendLine("---")
  54. .AppendFormat("Pakowanie prezentu: {0}", shippingDetails.GiftWrap ? "Tak" : "Nie");
  55.  
  56. MailMessage mailMessage = new MailMessage(
  57. emailSettings.MailFromAdress, emailSettings.MailToAdress, "Otrzymano zamówienie!", body.ToString());
  58.  
  59. if (emailSettings.WriteAsFile)
  60. {
  61. mailMessage.BodyEncoding = Encoding.ASCII;
  62. }
  63. smtpClient.Send(mailMessage);
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement