public ViewResult FecharPedido(Carrinho carrinho, Pedido pedido) { EmailConfiguracoes email = new EmailConfiguracoes { EscreverArquivo = bool.Parse(ConfigurationManager.AppSettings["Email.EscreverArquivo"] ?? "false") }; EmailPedido emailPedido = new EmailPedido(email); if (!carrinho.ItensCarrinho.Any()) { ModelState.AddModelError("", "Não foi possivel concluir o pedido, seu carrinho está vazio"); } if (ModelState.IsValid) { emailPedido.ProcessarPedido(carrinho, pedido); carrinho.LimpparCarrinho(); return View("PedidoConcluido"); } else { return View(pedido); } }
public ViewResult FecharPedido(Carrinho carrinho, Pedido pedido) { //Carrinho carrinho = ObterCarrinho(); EmailConfiguracoes email = new EmailConfiguracoes { EscreverArquivo = bool.Parse(ConfigurationManager.AppSettings["Email.EscreverArquivo"] ?? "false") }; EmailPedido emailpedido = new EmailPedido(email); //Se estiver vazio mostre a mensagem de erro if (!carrinho.ItensCarrinho.Any()) { ModelState.AddModelError("","Não foi possível concluir o pedido, seu carrinho está vazio!!!"); } //Se todos os campos estiverem preenchidos gravar o pedido if (ModelState.IsValid) { emailpedido.ProcessarPedido(carrinho,pedido); carrinho.LimparCarrinho(); return View("PedidoConcluido"); } else { return View(pedido); } }
public void ProcessarPedido(Carrinho carrinho, Pedido pedido) { using (var smtpClient = new SmtpClient()) { smtpClient.EnableSsl = _emailConfiguracoes.UsarSsl; smtpClient.Host = _emailConfiguracoes.ServidorSmtp; smtpClient.Port = _emailConfiguracoes.ServidorPorta; smtpClient.UseDefaultCredentials = false; smtpClient.Credentials = new NetworkCredential( _emailConfiguracoes.Usuario, _emailConfiguracoes.ServidorSmtp ); if (_emailConfiguracoes.EscreverArquivo) { smtpClient.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory; smtpClient.PickupDirectoryLocation = _emailConfiguracoes.PastaArquivo; smtpClient.EnableSsl = false; } StringBuilder body = new StringBuilder() .AppendLine("Novo Pedido:") .AppendLine("-------") .AppendLine("Itens"); foreach (var item in carrinho.ItensCarrinho) { var subtotal = item.Produto.Preco * item.Quantidade; body.AppendFormat("{0} x {1} (subtotal: {2:c}", item.Quantidade, item.Produto.Nome, subtotal); } body.AppendFormat("Valor total do peido: {0:c}", carrinho.ObterValorTotal()) .AppendLine("--------------------") .AppendLine("Enviar para:") .AppendLine(pedido.NomeCliente) .AppendLine(pedido.Email) .AppendLine(pedido.Endereco ?? "") .AppendLine(pedido.Cidade ?? "") .AppendLine(pedido.Complemento ?? "") .AppendLine("--------------------") .AppendFormat("Para presente?: {0}", pedido.EmbrulhaPresente ? "Sim" : "Não"); MailMessage mailMessage = new MailMessage( _emailConfiguracoes.De, _emailConfiguracoes.Para, "Novo peido", body.ToString()); if (_emailConfiguracoes.EscreverArquivo) { mailMessage.BodyEncoding = Encoding.GetEncoding("ISO-8859-1"); } smtpClient.Send(mailMessage); } }