Exemple #1
0
        // GET: Checkout
        public ActionResult Index(string acao = null, int?produtoId = null)
        {
            if (produtoId.HasValue)
            {
                var produto = CarrinhoDeCompras.GetItem(produtoId.Value);
                switch (acao)
                {
                case "incrementar":
                    produto.Quantidade++;
                    CarrinhoDeCompras.SetItem(produto);
                    break;

                case "decrementar":
                    produto.Quantidade--;
                    CarrinhoDeCompras.SetItem(produto);

                    if (produto.Quantidade == 0)
                    {
                        CarrinhoDeCompras.Remove(produtoId.Value);
                    }

                    break;

                case "remover":
                    CarrinhoDeCompras.Remove(produtoId.Value);
                    break;

                default:
                    return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, $"ação '{acao}' inválida"));
                }
            }

            ViewBag.CarrinhoDeCompras = CarrinhoDeCompras;
            return(View(CarrinhoDeCompras));
        }
        public ActionResult RemoveFromCart(int id)
        {
            // Remove o item do ItemVenda
            var cart = CarrinhoDeCompras.GetCart(this.HttpContext);

            // Pega o nome do álbum para exibir a confirmação
            string nomeProduto = storeDB.ItemVendaes
                                 .Single(item => item.RecordId == id).Produto.Titulo;

            // Remove do ItemVenda
            int itemCount = cart.RemoveFromCart(id);

            // Mostra a confirmação da mensagem
            var results = new CarrinhodeComprasRemoverViewModel
            {
                Message = Server.HtmlEncode(nomeProduto) +
                          " Foi removido do ItemVenda.",
                CartTotal = cart.GetTotal(),
                CartCount = cart.GetCount(),
                ItemCount = itemCount,
                DeleteId  = id
            };

            return(Json(results));
        }
Exemple #3
0
        public List <ItemCarrinho> AdicionarAoCarrinho(Guid itemId, int Quantidade, Cliente cliente)
        {
            var carrinho = cr.VerificarCarrinhoExistente(cliente.ClienteId);

            if (carrinho != null)
            {
                ItemCarrinho item = new ItemCarrinho();
                item.ProdutoId           = itemId;
                item.CarrinhoDeComprasId = carrinho.CarrinhoDeComprasId;
                item.Quantidade          = Quantidade;
                return(cr.AdicionarAoCarrinho(item));
            }
            else
            {
                CarrinhoDeCompras NovoCarrinho = new CarrinhoDeCompras();
                NovoCarrinho.ClienteId  = cliente.ClienteId;
                NovoCarrinho.DataCompra = DateTime.Now;
                NovoCarrinho.StatusId   = 0;
                NovoCarrinho            = cr.CriarCarrinho(NovoCarrinho);

                ItemCarrinho item = new ItemCarrinho();
                item.ProdutoId           = itemId;
                item.CarrinhoDeComprasId = NovoCarrinho.CarrinhoDeComprasId;
                item.Quantidade          = Quantidade;
                return(cr.AdicionarAoCarrinho(item));
            }
        }
        public ActionResult ClienteEFormaPagamento(FormCollection values)
        {
            ViewBag.Clientes = storeDB.Clientes;
            var order = new Pedido();

            TryUpdateModel(order);
            string forma = Request.Form["FormaPagamento"];

            try
            {
                order.FormaPagamento = forma;
                order.UsuarioId      = (int)Session["Cliente"];
                order.DataPedido     = DateTime.Now;
                order.Total          = CarrinhoDeCompras.GetCart(this.HttpContext).GetTotal();
                //Save Order
                storeDB.Pedidos.Add(order);
                storeDB.SaveChanges();
                //Process the order
                var cart = CarrinhoDeCompras.GetCart(this.HttpContext);
                cart.CreateOrder(order);

                return(RedirectToAction("Complete",
                                        new { id = order.PedidoId }));
            }
            catch
            {
                //Invalid - redisplay with errors
                return(View(order));
            }
        }
        public PartialViewResult Pagamento()
        {
            var cart = CarrinhoDeCompras.GetCart(this.HttpContext);


            return(PartialView(cart));
        }
        public ActionResult CartSummary()
        {
            var cart = CarrinhoDeCompras.GetCart(this.HttpContext);

            ViewData["CartCount"] = cart.GetCount();
            return(PartialView("CartSummary"));
        }
Exemple #7
0
        public void OrdemDecrescente()
        {
            //Arrange
            CarrinhoDeCompras carrinho = new CarrinhoDeCompras();

            carrinho.listaProdutos.Add(new Produto
            {
                nomeProduto = "Geladeira",
                preco       = 450.0
            });
            carrinho.listaProdutos.Add(new Produto
            {
                nomeProduto = "Liquidficador",
                preco       = 250.0
            });
            carrinho.listaProdutos.Add(new Produto
            {
                nomeProduto = "Jogo de Pratos",
                preco       = 70.0
            });

            //Act
            MaiorEMenor algoritmo = new MaiorEMenor();

            algoritmo.Encontra(carrinho);
            //Asserts
            Assert.AreEqual("Jogo de Pratos", algoritmo.menor.nomeProduto);
            Assert.AreEqual("Geladeira", algoritmo.maior.nomeProduto);
        }
        public ActionResult RemoveFromCart(int id)
        {
            // Remove the item from the cart
            var cart = CarrinhoDeCompras.GetCart(this.HttpContext);

            // Get the name of the album to display confirmation
            string nomeProduto = storeDB.Carrrinhos
                                 .Single(item => item.RecordId == id).Produto.Nome;

            // Remove from cart
            int itemCount = cart.RemoveFromCart(id);

            // Display the confirmation message
            var results = new CarrinhoDeComprasRemoverViewModel
            {
                Message = Server.HtmlEncode(nomeProduto) +
                          " Foi removido do carrinho.",
                CartTotal = cart.GetTotal(),
                CartCount = cart.GetCount(),
                ItemCount = itemCount,
                DeleteId  = id
            };

            return(Json(results));
        }
Exemple #9
0
        public void TesteValorTotalCarrinho()
        {
            CarrinhoDeCompras c  = new CarrinhoDeCompras();
            Pizza             p1 = new Pizza("Portuguesa");

            p1.AdicionaIngrediente("presunto");
            p1.AdicionaIngrediente("azeitonas pretas");
            p1.AdicionaIngrediente("mussarela");
            p1.AdicionaIngrediente("cebola");

            Pizza p2 = new Pizza("Mossarela");

            p2.AdicionaIngrediente("mussarela");
            p2.AdicionaIngrediente("azeitonas");

            Pizza p3 = new Pizza("Pizza Especial");

            p3.AdicionaIngrediente("presunto");
            p3.AdicionaIngrediente("azeitonas pretas");
            p3.AdicionaIngrediente("mussarela");
            p3.AdicionaIngrediente("cebola");
            p3.AdicionaIngrediente("palmito");
            p3.AdicionaIngrediente("oregano");
            p3.AdicionaIngrediente("milho");
            p3.AdicionaIngrediente("frango");

            c.AdicionarItens(p1);
            c.AdicionarItens(p2);
            c.AdicionarItens(p3);
            Assert.Equal(135.0, c.getTotalPagarCarrinho(), 0);
        }
Exemple #10
0
        public ActionResult FinalizarCompra(Guid id)
        {
            CarrinhoDeCompras carrinho = new CarrinhoDeCompras();

            carrinho = carrinhoServico.FinalizarCompra(id);
            return(RedirectToAction("DetalheCompra", carrinho));
        }
        public ActionResult ClienteFormadePagamento(FormCollection values)
        {
            ViewBag.Clientes = storeDB.Users;
            var order = new Pedido();

            TryUpdateModel(order);
            string forma = Request.Form["FormaPagamento"];

            try
            {
                order.FormaPagamento = forma;
                order.Usuario        = User.Identity.Name;
                order.DataPedido     = DateTime.Now;
                order.Total          = CarrinhoDeCompras.GetCart(this.HttpContext).GetTotal();
                //Salva o Pedido
                storeDB.Pedidoes.Add(order);
                storeDB.SaveChanges();
                //Processa o pedido
                var cart = CarrinhoDeCompras.GetCart(this.HttpContext);
                cart.CreateOrder(order, (List <Pagamento>)Session["cards"], (Cupom)Session["cup_pro"]);
                Session["cards"]   = null;
                Session["cup_pro"] = null;
                return(RedirectToAction("Complete", new { id = order.PedidoId }));
            }
            catch
            {
                //Invalido - Devolve tela com erros
                return(View(order));
            }
        }
 public double Encontra(CarrinhoDeCompras carrinho)
 {
     if (carrinho.Itens.Count == 0)
     {
         return(0);
     }
     return(carrinho.Itens[0].ValorTotal);
 }
Exemple #13
0
        public void DeveRetornarValorDoItemSeCarrinhoCom1Elemento()
        {
            carrinho = new CarrinhoDeComprasBuilder()
                       .ComItens(descricao: "Geladeira", quantidade: 1, valorUnitario: 900.0)
                       .Cria();

            Assert.AreEqual(900.0, carrinho.MaiorValor());
        }
Exemple #14
0
        public void DeveRetornarValorDoItemSeCarrinhoCom1Elemento()
        {
            CarrinhoDeCompras carrinho = new CarrinhoDeCompras();

            carrinho.Adiciona(new Item("Geladeira", 1, 900.0));

            Assert.AreEqual(900.0, carrinho.MaiorValor(), 0.0001);
        }
Exemple #15
0
        public void DeveRetornarZeroSeCarrinhoVazio()
        {
            CarrinhoDeCompras carrinho = new CarrinhoDeCompras();

            MaiorPreco algoritmo = new MaiorPreco();

            double valor = algoritmo.Encontra(carrinho);

            Assert.AreEqual(0.0, valor, 0.0001);
        }
Exemple #16
0
        public void DeveRetornarMaiorValorSeCarrinhoContemMuitosElementos()
        {
            CarrinhoDeCompras carrinho = new CarrinhoDeCompras();

            carrinho.Adiciona(new Item("Geladeira", 1, 900.0));
            carrinho.Adiciona(new Item("Fogão", 1, 1500.0));
            carrinho.Adiciona(new Item("Máquina de Lavar", 1, 750.0));

            Assert.AreEqual(1500.0, carrinho.MaiorValor(), 0.0001);
        }
Exemple #17
0
        public void DeveRetornarMaiorValorSeCarrinhoContemMuitosElementos()
        {
            carrinho = new CarrinhoDeComprasBuilder()
                       .ComItens(descricao: "Geladeira", quantidade: 1, valorUnitario: 900.0)
                       .ComItens(descricao: "Fogão", quantidade: 1, valorUnitario: 1500.0)
                       .ComItens(descricao: "Máquina de Lavar", quantidade: 1, valorUnitario: 750.0)
                       .Cria();

            Assert.AreEqual(1500.0, carrinho.MaiorValor());
        }
Exemple #18
0
        public ActionResult DetalheCompra(CarrinhoDeCompras carrinho)
        {
            Cliente cliente = (Cliente)Session["SessionCliente"];

            var detalheCompraViewModel = new DetalheCompraViewModel();

            detalheCompraViewModel.DataCompra  = carrinho.DataCompra;
            detalheCompraViewModel.Pedido      = carrinho.CarrinhoDeComprasId.ToString();
            detalheCompraViewModel.NomeCliente = cliente.Nome;
            return(View("DetalheCompra", detalheCompraViewModel));
        }
Exemple #19
0
        public void DeveRetornarValorDoItemSeCarrinhoCom1Elemento()
        {
            carrinho = new CarrinhoDeComprasBuilder()
                       .ComItens(descricao: "Geladeira", quantidade: 1, valorUnitario: 900.0)
                       .Cria();

            var item         = carrinho.MaiorValor();
            var itemEsperado = new Item(descricao: "Geladeira", quantidade: 1, valorUnitario: 900.0).ValorTotal;

            Assert.AreEqual(itemEsperado, item);
        }
Exemple #20
0
        public void CarrinhoDeComprasDeveTerUmUsuario()
        {
            Usuario usuario = new Usuario(1, "Fabio");

            CarrinhoDeCompras carrinhoDeCompras = new CarrinhoDeCompras(usuario);

            Usuario usuarioCarrinho = carrinhoDeCompras.Usuario;

            Assert.Equal(1, usuarioCarrinho.Id);
            Assert.Equal("Fabio", usuarioCarrinho.Nome);
        }
        public ActionResult ClienteFormadePagamento(FormCollection values, int?id, int?cartao)
        {
            int dec = 0;

            int.TryParse(Request.Form["FormaPagamento"], out dec);
            cartao = dec;
            EnderecoEntrega end = storeDB.EnderecoEntregas.Find(endere);

            if (end == null)
            {
                return(HttpNotFound());
            }

            ViewBag.Clientes = storeDB.Users;
            var order = new Pedido();

            TryUpdateModel(order);

            try
            {
                order.FormaPagamento = " ";
                order.Usuario        = User.Identity.Name;
                order.DataPedido     = DateTime.Now;
                order.Endereco       = end.Id;
                order.Total          = CarrinhoDeCompras.GetCart(this.HttpContext).GetTotal();
                //Salva o Pedido
                storeDB.Pedidoes.Add(order);
                storeDB.SaveChanges();
                var cart = CarrinhoDeCompras.GetCart(this.HttpContext);
                cart.CreateOrder(order, (List <Pagamento>)Session["cards"], (Cupom)Session["cup_pro"]);
                Session["cards"]   = null;
                Session["cup_pro"] = null;
                PedidoStatus stats = new PedidoStatus();
                stats.DataStatus = DateTime.Now;
                stats.PedidoId   = order.PedidoId;
                stats.StatusId   = 1;
                storeDB.PedidoStatus.Add(stats);
                storeDB.SaveChanges();
                if (cupons == true)
                {
                    Cupom cup = storeDB.Cupom.Find(cupo);
                    cup.Ativo = false;
                }
                storeDB.SaveChanges();

                return(RedirectToAction("Complete", new { id = order.PedidoId }));
            }
            catch
            {
                //Invalido - Devolve tela com erros
                return(View(order));
            }
        }
Exemple #22
0
        public void DeveRetornarValorDoItemSeCarrinhoCom1Elemento()
        {
            CarrinhoDeCompras carrinho = new CarrinhoDeCompras();

            carrinho.Adiciona(new Item("Geladeira", 1, 900.0));

            MaiorPreco algoritmo = new MaiorPreco();

            double valor = algoritmo.Encontra(carrinho);

            Assert.AreEqual(900.0, valor, 0.0001);
        }
Exemple #23
0
        public void Validar_Instancia_Modelo_CarrinhoDeCompras()
        {
            var cdc = new CarrinhoDeCompras();

            Assert.IsNotNull(cdc);

            Assert.AreEqual(cdc.GetType(), typeof(CarrinhoDeCompras));
            Assert.IsNotNull(cdc.Produtos);

            cdc.Adiciona(new Produto("Hudson", 5.1));
            Assert.IsTrue(cdc.Produtos.Count > 0);
        }
Exemple #24
0
        public void Adicionar_Um_Unico_Produto_No_Carrinho()
        {
            var carrinho = new CarrinhoDeCompras();
            var produto  = new Produto("Fogao", (decimal)250.0);

            carrinho.Adiciona(produto);

            var algoritmo = new MaiorEMenor();

            algoritmo.Encontra(carrinho);

            Assert.That(Equals(algoritmo.Menor.Nome, algoritmo.Maior.Nome));
        }
Exemple #25
0
        public void UmProduto()
        {
            var carrinho = new CarrinhoDeCompras();

            carrinho.Adiciona(new Produto("Liquidificador", 250));

            var algoritmo = new MaiorMenor();

            algoritmo.Encontra(carrinho);

            Assert.AreEqual("Liquidificador", algoritmo.Menor.Nome);
            Assert.AreEqual("Liquidificador", algoritmo.Maior.Nome);
        }
        //
        // GET: /ShoppingCart/


        public ActionResult Index()
        {
            var cart = CarrinhoDeCompras.GetCart(this.HttpContext);
            // Set up our ViewModel
            var viewModel = new CarrinhodeComprasViewModel
            {
                CartItems = cart.GetCartItems(),
                CartTotal = cart.GetTotal(),
            };

            // Return the view
            return(View(viewModel));
        }
Exemple #27
0
        public void ApenasUmProduto()
        {
            var carrinho = new CarrinhoDeCompras();

            carrinho.Adiciona(new Produto("Geladeira", 450.0));

            var algoritmo = new MaiorEMenor();

            algoritmo.Encontra(carrinho);

            Assert.AreEqual("Geladeira", algoritmo.Menor.Nome);
            Assert.AreEqual("Geladeira", algoritmo.Maior.Nome);
        }
Exemple #28
0
 public void Encontra(CarrinhoDeCompras carrinho)
 {
     foreach (Produto produto in carrinho.Produtos)
     {
         if (Menor == null || produto.Valor < Menor.Valor)
         {
             Menor = produto;
         }
         if (Maior == null || produto.Valor > Maior.Valor) //Correção do erro
         {
             Maior = produto;
         }
     }
 }
        //
        // GET: /Store/AddToCart/5



        public ActionResult AddToCart(int id)
        {
            // Recupera o álbum do banco de dados
            var addProduto = storeDB.Produtoes
                             .Single(produto => produto.Id == id);

            // Adiciona ao ItemVenda de compras
            var cart = CarrinhoDeCompras.GetCart(this.HttpContext);

            cart.AddToCart(addProduto);

            // Volta para a página da loja principal para mais compras
            return(RedirectToAction("Index", "Home", null));
        }
Exemple #30
0
        public App()
        {
            var repositorioDeMedicamentos = new RepositorioDeMedicamentosInMemory();

            var servicoDeDiagnostico = new ServicoDeDiagnostico(repositorioDeMedicamentos);

            realizacaoDeDiagnosticos = new ServicoDeDiagnosticoUsandoDominio(servicoDeDiagnostico);

            var repositorioDePedidos = new RepositorioDePedidosInMemory();

            realizacaoDePedidos = new ServicoDeCompras(repositorioDePedidos);

            carrinhoDeCompras = new CarrinhoDeCompras(repositorioDeMedicamentos);
        }