示例#1
0
        public void ProcessarPedido(Carrinho carrinho, Pedido pedido)
        {
            // Realizar pagamento (Integração com algum meio de pagamento)

            String body = ProcessarCorpoEmail(carrinho, pedido);
            new Thread( () => EnviarEmail(pedido.Email, body) ).Start();
        }
        public void AdicionarItem()
        {
            // Arrange
            Produto produto1 = new Produto()
            {
                ProdutoID = 1,
                Nome = "Teste1"
            };

            Produto produto2 = new Produto()
            {
                ProdutoID = 2,
                Nome = "Teste2"
            };

            Carrinho carrinho = new Carrinho();
            carrinho.AdicionarItem(produto1, 3);
            carrinho.AdicionarItem(produto2, 4);

            CarrinhoController controller = new CarrinhoController();

            // Act
            controller.Adicionar(carrinho, 2, 1, ""); // 2 = ID do Produto que NÃO há no BD

            // Assert
            Assert.AreEqual(carrinho.ItensCarrinhos.Count(), 2); // PASSED
            // Assert.AreEqual(carrinho.ItensCarrinhos.Count(), 1); // FAIL
            Assert.AreEqual(carrinho.ItensCarrinhos.ToArray()[0].Produto.ProdutoID, 1);
        }
 public ViewResult Index(Carrinho carrinho, string returnUrl)
 {
     return View(new CarrinhoViewModel
     {
         Carrinho = carrinho,
         ReturnUrl = returnUrl
     });
 }
        public ActionResult FecharPedido(Carrinho carrinho)
        {
            if (!carrinho.ItensCarrinhos.Any())
            {
                return Redirect("~/Vitrine/ListarProdutos");
            }

            return View(new Pedido());
        }
        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 ConteudoCarrinho()
        {
            // Arrange
            Carrinho carrinho = new Carrinho();
            CarrinhoController controller = new CarrinhoController();

            // Act
            CarrinhoViewModel resultado = (CarrinhoViewModel) controller.Index(carrinho, "minhaUrl").ViewData.Model;

            // Assert
            Assert.AreSame(resultado.Carrinho, carrinho);
            Assert.AreEqual(resultado.ReturnUrl, "minhaUrl");
        }
        public ViewResult FecharPedido(Carrinho carrinho, Pedido pedido)
        {
            EmailPedido emailPedido = new EmailPedido(GetEmailConfiguration());

            if (!carrinho.ItensCarrinhos.Any())
            {
                ModelState.AddModelError("", "Não foi possível concluir o pedido, seu carrinho está vazio!");
            }

            if (ModelState.IsValid)
            {
                emailPedido.ProcessarPedido(carrinho, pedido);
                carrinho.LimparCarrinho();
                return View("PedidoConcluido");
            }

            return View(pedido);
        }
示例#8
0
        private String ProcessarCorpoEmail(Carrinho carrinho, Pedido pedido)
        {
            StringBuilder body = new StringBuilder()
                .AppendLine("Novo Pedido")
                .Append(Environment.NewLine)

                .AppendLine("Informações do destinatário")

                .AppendFormat("Cliente: {0}", pedido.NomeCliente)
                .AppendLine(String.Empty)
                .AppendFormat("Email: {0}", pedido.Email)
                .AppendLine(String.Empty)
                .AppendFormat("Logradouro: {0}, {1}", pedido.Logradouro, pedido.Numero)
                .AppendLine(String.Empty)
                .AppendFormat("Complemento: {0}", pedido.Complemento ?? "Não informado")
                .AppendLine(String.Empty)
                .AppendFormat("Bairro: {0}", pedido.Bairro)
                .AppendLine(String.Empty)
                .AppendFormat("Cidade: {0}", pedido.Cidade)
                .AppendLine(String.Empty)
                .AppendFormat("Estado: {0}", pedido.Estado)
                .AppendLine(Environment.NewLine)

                .AppendLine("Itens:");

            foreach (var item in carrinho.ItensCarrinhos)
            {
                var subTotal = item.Produto.Preco * item.Quantidade;
                body.AppendFormat("{0} - {1} x {2:c}, subtotal: {3:c}" + Environment.NewLine,
                    item.Produto.Nome, item.Quantidade, item.Produto.Preco, subTotal);
            }

            body.Append(Environment.NewLine)
                .AppendFormat("Valor total do pedido: {0:c}", carrinho.ObterValorTotal())
                .Append(Environment.NewLine)
                .AppendFormat("Embulhar para presente: {0}", pedido.EmbrulharPresente ? "Sim" : "Não")
                .AppendLine(Environment.NewLine)
                .AppendLine("Obrigado por escolher a Loja Virtual Benz!")
                .AppendLine("Caso precise nos contactar, abaixo os nossos contatos")
                .AppendFormat("SAC: {0} - {1}", _emailConfig.TelefoneSAC, _emailConfig.EmailSAC);

            return body.ToString();
        }
        public void AdicionarProduto_VoltarParaCategoria()
        {
            #region Comentário
            // Ao adicionar um produto, o usuário é direcionado para o carrinho
            // ... ao clicar em "Continuar comprando", o mesmo deve ser redirecionado para sua página de origem inicial
            // Exemplo: URL = http://localhost:4393/Futebol <- Voltar para categoria FUTEBOL
            #endregion

            // Arrange
            Carrinho carrinho = new Carrinho();
            CarrinhoController controller = new CarrinhoController();

            // Act
            RedirectToRouteResult result = controller.Adicionar(carrinho, 2, 1, "minhaUrl");

            // Assert
            Assert.AreEqual(result.RouteValues["action"], "Index");
            Assert.AreEqual(result.RouteValues["returnUrl"], "minhaUrl");
        }
        public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
        {
            // Obtendo carrinho ...
            Carrinho carrinho = null;

            if (controllerContext.HttpContext.Session != null)
            {
                carrinho = (Carrinho) controllerContext.HttpContext.Session[SessionKey];
            }

            // Criando sessão, caso não exista ...
            if (carrinho == null)
            {
                carrinho = new Carrinho();

                if (controllerContext.HttpContext.Session != null)
                {
                    controllerContext.HttpContext.Session[SessionKey] = carrinho;
                }
            }

            // Retornando ...
            return carrinho;
        }
示例#11
0
 public PartialViewResult Resumo(Carrinho carrinho)
 {
     return PartialView(carrinho);
 }