public ViewResult Index(Carrinho carrinho, string retornaUrl) { return View(new CarrinhoIndexViewModel { Carrinho = carrinho, RetornaUrl = retornaUrl }); }
public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) { Carrinho carrinho = (Carrinho)controllerContext.HttpContext.Session[sessionKey]; if (carrinho == null) { carrinho = new Carrinho(); controllerContext.HttpContext.Session[sessionKey] = carrinho; } return carrinho; }
public RedirectToRouteResult RemoveFromCart(Carrinho carrinho, int idProduto, string retornaUrl) { Produto produto = repository.Produtos .FirstOrDefault(p => p.IdProduto == idProduto); if (produto != null) { carrinho.RemoverItem(produto); } return RedirectToAction("Index", new { retornaUrl }); }
public RedirectToRouteResult AddToCart(Carrinho carrinho, int idProduto, string retornaUrl) { Produto product = repository.Produtos .FirstOrDefault(p => p.IdProduto == idProduto); if (product != null) { carrinho.AdicionarItem(product, 1); } return RedirectToAction("Index", new { retornaUrl }); }
public ViewResult Checkout(Carrinho carrinho, DetalheCompras detalheCompra) { if (carrinho.Lines.Count() == 0) { ModelState.AddModelError("", "Desculpe-me, não contém itens no carrinho!"); } if (ModelState.IsValid) { orderProcessor.ProcessOrder(carrinho, detalheCompra); carrinho.Limpar(); return View("Completed"); } else { return View(detalheCompra); } }
public PartialViewResult Summary(Carrinho carrinho) { return PartialView(carrinho); }
public void ProcessOrder(Carrinho cart, DetalheCompras shippingInfo) { 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("Seu pedido foi efetuado com sucesso") .AppendLine("---") .AppendLine("Itens:"); foreach (var line in cart.Lines) { var subtotal = line.Produto.Preco * line.Quantidade; body.AppendFormat("{0} x {1} (subtotal: {2:c}", line.Quantidade, line.Produto.Nome, subtotal); } body.AppendFormat("Total : {0:c}", cart.CalcularValorTotal()) .AppendLine("---") .AppendLine("Dados para Entrega:") .AppendLine(shippingInfo.Nome) .AppendLine(shippingInfo.Item1) .AppendLine(shippingInfo.Item2 ?? "") .AppendLine(shippingInfo.Item3 ?? "") .AppendLine(shippingInfo.Cidade) .AppendLine(shippingInfo.Estado ?? "") .AppendLine(shippingInfo.Pais) .AppendLine(shippingInfo.Cep) .AppendLine("---") .AppendFormat("Embrulhar para presente: {0}", shippingInfo.EmbrulharPresente ? "Sim" : "Não"); MailMessage mailMessage = new MailMessage( emailSettings.MailFromAddress, // From emailSettings.MailToAddress, // To "Novo pedido enviado!", // Subject body.ToString()); // Body if (emailSettings.WriteAsFile) { mailMessage.BodyEncoding = Encoding.ASCII; } smtpClient.Send(mailMessage); } }