public void ProcessOrder (Cart cart, ShoppingDetails shopingInfo) { 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.Passworld); if(emailSettings.WriteAsFile) { smtpClient.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory; smtpClient.PickupDirectoryLocation = emailSettings.FileLocation; smtpClient.EnableSsl = false; } StringBuilder body = new StringBuilder() .AppendLine("A new order has been submited") .AppendLine("---") .AppendLine("Items:"); foreach(var line in cart.Lines) { var subtotal = line.Product.Price * line.Quantity; body.AppendFormat("{0} x {1} (subtotal : {2:c}", line.Quantity, line.Product.Name, subtotal); } body.AppendFormat("Total order value: {0:c}", cart.ComputeTotalValue()) .AppendLine("---") .AppendLine("Ship to:") .AppendLine(shopingInfo.Name) .AppendLine(shopingInfo.Line1) .AppendLine(shopingInfo.Line2 ?? "") .AppendLine(shopingInfo.Line3 ?? "") .AppendLine(shopingInfo.City) .AppendLine(shopingInfo.State ?? "") .AppendLine(shopingInfo.Country) .AppendLine(shopingInfo.Zip) .AppendLine("---") .AppendFormat("Gift wrap: {0}", shopingInfo.GiftWap ? "Yes" : "No"); MailMessage mailMessage = new MailMessage( emailSettings.MailFromAddress, emailSettings.MailToAddress, "New order submitted", body.ToString()); if(emailSettings.WriteAsFile) { mailMessage.BodyEncoding = Encoding.ASCII; } smtpClient.Send(mailMessage); } }
public ViewResult Checkout(Cart cart, ShoppingDetails shoppingDetails) { if (cart.Lines.Count() == 0) { ModelState.AddModelError("", "Sorry< your cart is empty!"); } if(ModelState.IsValid) { oderProcessor.ProcessOrder(cart, shoppingDetails); cart.Clear(); return View("Completed"); } else { return View(shoppingDetails); } }