public void ProcessOrder(Cart cart, SnippingDetails shippingDetails) { using (SmtpClient smtpClient = new SmtpClient()) { smtpClient.EnableSsl = emailSetting.UseSsl; smtpClient.Host = emailSetting.ServerName; smtpClient.Port = emailSetting.ServerPort; smtpClient.UseDefaultCredentials = false; smtpClient.Credentials = new NetworkCredential(emailSetting.UserName, emailSetting.Password); if (emailSetting.WriteAsFile) { smtpClient.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory; smtpClient.PickupDirectoryLocation = emailSetting.FileLocation; smtpClient.EnableSsl = false; } StringBuilder body = new StringBuilder() .AppendLine("Новый заказ обработан") .AppendLine("---") .AppendLine("Товары:"); foreach (var line in cart.Lines) { var subtotal = line.Book.Price * line.Quantity; body.AppendFormat($"{line.Quantity} x {line.Book.Name} (итого: {subtotal:c}"); } body.AppendFormat($"Общая стоимость: {cart.ComputeTotalValue():c}") .AppendFormat("---") .AppendLine("Доставка:") .AppendLine(shippingDetails.FirstName) .AppendLine(shippingDetails.LastName) .AppendLine(shippingDetails.LineOne) .AppendLine(shippingDetails.LineTwo ?? "") .AppendLine(shippingDetails.LineThree ?? "") .AppendLine(shippingDetails.City) .AppendLine(shippingDetails.Country) .AppendFormat("---") .AppendFormat("Подарочная упаковка: {0}", shippingDetails.GiftWrap ? "Да" : "Нет"); MailMessage mailMessage = new MailMessage( emailSetting.MailFromAddress, emailSetting.MailToAddress, "Новый заказ отправлен!", body.ToString()); if (emailSetting.WriteAsFile) { mailMessage.BodyEncoding = Encoding.UTF8; } smtpClient.Send(mailMessage); } }
public ViewResult Checkout(Cart cart, SnippingDetails snippingDetails) { if (cart.Lines.Count() == 0) { ModelState.AddModelError("", "Извините, корзина пуста!"); } if (ModelState.IsValid) { orderProcessor.ProcessOrder(cart, snippingDetails); cart.Clear(); return(View("Completed")); } else { return(View(new SnippingDetails())); } }