Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public string MailToAdress = "przemek7799@gmail.com";
- public string MailFromAdress = "przemek7799@gmail.com";
- public bool UseSsl = true;
- public string Username = "przemek7799@gmail.com";
- public string Password = "";
- public string ServerName = "smtp.gmail.com";
- public int ServerPort = 587;
- public bool WriteAsFile = false;
- public string FileLocation = @"C:\Users\przem\Desktop\aaa";
- }
- public class EmailOrderProcessor : IOrderProcessor
- {
- private EmailSettings emailSettings;
- public EmailOrderProcessor(EmailSettings settings)
- {
- emailSettings = settings;
- }
- public void ProcessOrder(Cart cart, ShippingDetails shippingDetails)
- {
- using(var smtpClient = new SmtpClient())
- {
- smtpClient.EnableSsl = emailSettings.UseSsl;
- smtpClient.Host = emailSettings.ServerName;
- smtpClient.Port = emailSettings.ServerPort;
- smtpClient.UseDefaultCredentials = false;
- smtpClient.Credentials = new NetworkCredential(emailSettings.Username, emailSettings.Password);
- if (emailSettings.WriteAsFile)
- {
- smtpClient.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory;
- smtpClient.PickupDirectoryLocation = emailSettings.FileLocation;
- smtpClient.EnableSsl = false;
- }
- StringBuilder body = new StringBuilder().AppendLine("Nowe zamówienie").AppendLine("---").Append("Produkty");
- foreach(var line in cart.Lines)
- {
- var subtotal = line.Product.Price * line.Quantity;
- body.AppendFormat("{0} x {1} (wartość: {2:c}", line.Quantity, line.Product.Name, subtotal);
- }
- body.AppendFormat("Wartośc całkowita: {0:c}", cart.ComputeTotalValue())
- .AppendLine("---")
- .AppendLine("Wysyłka dla:")
- .AppendLine(shippingDetails.Name)
- .AppendLine(shippingDetails.Line1)
- .AppendLine(shippingDetails.Line2 ?? "")
- .AppendLine(shippingDetails.Line3 ?? "")
- .AppendLine(shippingDetails.City)
- .AppendLine(shippingDetails.State ?? "")
- .AppendLine(shippingDetails.Country)
- .AppendLine(shippingDetails.Zip)
- .AppendLine("---")
- .AppendFormat("Pakowanie prezentu: {0}", shippingDetails.GiftWrap ? "Tak" : "Nie");
- MailMessage mailMessage = new MailMessage(
- emailSettings.MailFromAdress, emailSettings.MailToAdress, "Otrzymano zamówienie!", body.ToString());
- if (emailSettings.WriteAsFile)
- {
- mailMessage.BodyEncoding = Encoding.ASCII;
- }
- smtpClient.Send(mailMessage);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement