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.ItensCarrinhos.Any()) { ModelState.AddModelError("", "Não foi possivel concluir o pedido, seu carrinho esta vazio."); } if (ModelState.IsValid) { emailPedido.Processarpedido(carrinho, pedido); carrinho.LimparCarrinho(); return View("PedidoConcluido"); } else { return View(pedido); } }
public void AdicionarProdutoExistenteParaCarrinho() { Produto produto1 = new Produto { ProdutoId = 1, Nome = "Teste 1" }; Produto produto2 = new Produto { ProdutoId = 2, Nome = "Teste 2" }; //Produto produto3 = new Produto //{ // ProdutoId = 3, // Nome = "Teste 3" //}; //arrange Carrinho carrinho = new Carrinho(); carrinho.AdicionarItem(produto1, 1); carrinho.AdicionarItem(produto2, 1); carrinho.AdicionarItem(produto1, 10); //Act ItemCarrinho[] resultado = carrinho.ItensCarrinhos .OrderBy(c => c.Produto.ProdutoId).ToArray(); //ver qts produto tenho no carrinho Assert.AreEqual(resultado.Length, 2); Assert.AreEqual(resultado[0].Quantidade, 11); Assert.AreEqual(resultado[1].Quantidade, 1); }
public void AdicionarItensAoCarrinho() { //Arrange - criacao dos produtos Produto produto1 = new Produto { ProdutoId = 1, Nome = "Teste 1" }; Produto produto2 = new Produto { ProdutoId = 2, Nome = "Teste 2" }; //Arrange Carrinho carrinho = new Carrinho(); carrinho.AdicionarItem(produto1, 2); carrinho.AdicionarItem(produto2, 3); //Act ItemCarrinho[] itens = carrinho.ItensCarrinhos.ToArray(); //Assert Assert.AreEqual(itens.Length, 2); //Assert.AreEqual(itens[0].Produto, produto1); //Assert.AreEqual(itens[1].Produto, produto2); }
//retorna o carrinho e a Url public ViewResult Index(Carrinho carrinho, string returnurl) { return View(new CarrinhoViewModel { Carrinho = carrinho, ReturnUrl = returnurl }); }
private Carrinho ObterCarrinho() { Carrinho carrinho = (Carrinho)Session["Carrinho"]; if (carrinho == null) { carrinho = new Carrinho(); Session["Carrinho"] = carrinho; } return carrinho; }
public RedirectToRouteResult Remover(Carrinho carrinho ,int produtoId, string returnUrl) { _repositorio = new ProdutosRepositorio(); Produto produto = _repositorio.Produtos.FirstOrDefault(p => p.ProdutoId == produtoId); if (produto != null) { carrinho.RemoverItem(produto); } return RedirectToAction("Index", new {returnUrl}); }
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.ItensCarrinhos) { 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 Pedido: {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 Pedido", body.ToString() ); if (_emailConfiguracoes.EscreverArquivo) { mailMessage.BodyEncoding = Encoding.GetEncoding("ISO-8859-1"); } smtpClient.Send(mailMessage); } }
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 Pedido:{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 Pedido", body.ToString()); if (_emailConfiguracoes.EscreverArquivo) { mailMessage.BodyEncoding = Encoding.GetEncoding("ISO-8859-1"); } smtpClient.Send(mailMessage); } }
public void AdicionarProdutoExistenteAoCarrinho() { #region [-- Arrange --] Produtos produto01 = new Produtos { ProdutoId = 1, Nome = "teste 1" }; Produtos produto02 = new Produtos { ProdutoId = 2, Nome = "teste 2" }; Produtos produto03 = new Produtos { ProdutoId = 3, Nome = "teste 3" }; Carrinho carrinho = new Carrinho(); #endregion #region [-- Action --] carrinho.AdicionarItem(produto01, 2); carrinho.AdicionarItem(produto02, 3); carrinho.AdicionarItem(produto03, 5); carrinho.AdicionarItem(produto01, 7); ItensCarrinho[] itens = carrinho.ItensCarrinho.OrderBy(c => c.Produto.ProdutoId).ToArray(); #endregion #region [-- Assert --] Assert.AreEqual(itens.Length, 3); Assert.AreEqual(itens[0].Produto, produto01); Assert.AreEqual(itens[1].Produto, produto02); Assert.AreEqual(itens[0].Quantidade, 9); #endregion }
//ImodelBinder interface define o metodo bindModel //ControllerContext - incapsula uma informacao httpRequest ou seja a cada requisiçao ele vai estar encapsulando public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) { //obter carrinho da sessao Carrinho carrinho = null; if (controllerContext.HttpContext.Session != null) { carrinho = (Carrinho)controllerContext.HttpContext.Session[SessionKey]; } //crio o carrinho se nao tenho a sessao if (carrinho == null) { carrinho = new Carrinho(); if (controllerContext.HttpContext.Session != null) { controllerContext.HttpContext.Session[SessionKey] = carrinho; } } //retorno o carrinho return carrinho; }
public PartialViewResult Resumo(Carrinho carrinho) { return PartialView(carrinho); }
public void CalcularValorTotal() { Produto produto1 = new Produto { ProdutoId = 1, Nome = "Teste 1", Preco = 100M }; Produto produto2 = new Produto { ProdutoId = 2, Nome = "Teste 2", Preco = 50M }; //Produto produto3 = new Produto //{ // ProdutoId = 3, // Nome = "Teste 3" //}; Carrinho carrinho = new Carrinho(); carrinho.AdicionarItem(produto1, 1); carrinho.AdicionarItem(produto2, 1); carrinho.AdicionarItem(produto1, 3); Decimal resultado = carrinho.ObterValorTotal(); Assert.AreEqual(resultado, 500M); }
public void RemoverItensCarrinho() { #region [-- Arrange --] Produtos produto01 = new Produtos { ProdutoId = 1, Nome = "teste 1" }; Produtos produto02 = new Produtos { ProdutoId = 2, Nome = "teste 2" }; Produtos produto03 = new Produtos { ProdutoId = 3, Nome = "teste 3" }; Carrinho carrinho = new Carrinho(); #endregion #region [-- Action --] carrinho.AdicionarItem(produto01, 2); carrinho.AdicionarItem(produto02, 3); carrinho.AdicionarItem(produto03, 5); carrinho.AdicionarItem(produto01, 7); carrinho.RemoverItem(produto02); #endregion #region [-- Assert --] Assert.AreEqual(carrinho.ItensCarrinho.Where(c => c.Produto == produto02).Count(), 0); Assert.AreEqual(carrinho.ItensCarrinho.Count(), 2); #endregion }
public void LimparItensCarrinho() { #region [-- Arrange --] Produtos produto01 = new Produtos { ProdutoId = 1, Nome = "teste 1", Preco = 100M }; Produtos produto02 = new Produtos { ProdutoId = 2, Nome = "teste 2", Preco = 50M }; Carrinho carrinho = new Carrinho(); #endregion #region [-- Action --] carrinho.AdicionarItem(produto01, 1); carrinho.AdicionarItem(produto02, 1); carrinho.AdicionarItem(produto01, 4); decimal? result = carrinho.ValorTotal(); carrinho.LimparCarrinho(); #endregion #region [-- Assert --] Assert.AreEqual(carrinho.ItensCarrinho.Count(), 0); #endregion }
public void RemoverItensCarrinho() { //Arrange Produto produto1 = new Produto() { ProdutoId = 1, Nome = "Teste 1" }; Produto produto2 = new Produto() { ProdutoId = 2, Nome = "Teste 2" }; Produto produto3 = new Produto() { ProdutoId = 3, Nome = "Teste 3" }; //Arrange Carrinho carrinho = new Carrinho(); carrinho.AdicionarItem(produto1, 1); carrinho.AdicionarItem(produto2, 3); carrinho.AdicionarItem(produto3, 5); carrinho.AdicionarItem(produto2, 1); carrinho.RemoverItem(produto2); Assert.AreEqual( carrinho.ItensCarrinho.Count(c => c.Produto == produto2), 0 ); Assert.AreEqual(carrinho.ItensCarrinho.Count(),2); }
public void LimparItensCarrinho() { //Arrange Produto produto1 = new Produto() { ProdutoId = 1, Nome = "Teste 1", Preco = 100M }; Produto produto2 = new Produto() { ProdutoId = 2, Nome = "Teste 2", Preco = 50M }; //Arrange Carrinho carrinho = new Carrinho(); carrinho.AdicionarItem(produto1, 1); carrinho.AdicionarItem(produto2, 1); carrinho.AdicionarItem(produto1, 3); carrinho.LimparCarrinho(); Assert.AreEqual(carrinho.ItensCarrinho.Count(),0); }
public void CalcularValorTotal() { //Arrange Produto produto1 = new Produto() { ProdutoId = 1, Nome = "Teste 1", Preco = 100M }; Produto produto2 = new Produto() { ProdutoId = 2, Nome = "Teste 2", Preco = 50M }; //Arrange Carrinho carrinho = new Carrinho(); carrinho.AdicionarItem(produto1, 1); carrinho.AdicionarItem(produto2, 1); carrinho.AdicionarItem(produto1, 3); decimal resultado = carrinho.ObterValorTotal(); Assert.AreEqual(resultado, 450M); }