public double CalcularPrecoLanche(PedidoLanche pedidoLanche)
        {
            double valorFinal = 0;
            var    lanche     = _lancheBll.Find(pedidoLanche.Lanche.Id);

            foreach (var item in lanche.LancheIngredientes)
            {
                valorFinal += item.Ingrediente.Valor;
            }

            foreach (var item in pedidoLanche.IngredientesAdicionais)
            {
                valorFinal += item.Ingrediente.Valor * item.Quantidade;
            }

            //Aplica Promoção Light caso satisfaça as regras da promoção
            if (PromocaoLight(lanche.LancheIngredientes, pedidoLanche.IngredientesAdicionais))
            {
                valorFinal = valorFinal - (valorFinal * 0.1);
            }

            //A cada 3 Hambúrgueres de carne o cliente não paga um
            valorFinal -= PromocaoCarne(lanche.LancheIngredientes, pedidoLanche.IngredientesAdicionais);
            //A cada 3 Queijos o cliente não paga um
            valorFinal -= PromocaoQueijo(lanche.LancheIngredientes, pedidoLanche.IngredientesAdicionais);

            return(valorFinal);
        }
        public ActionResult DeleteConfirmed(int id)
        {
            PedidoLanche pedidoLanche = db.PedidoLanches.Find(id);

            db.PedidoLanches.Remove(pedidoLanche);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
        public IActionResult ValorFinal([FromBody] PedidoLanche pedidoLanche)
        {
            if (pedidoLanche == null)
            {
                return(BadRequest());
            }
            pedidoLanche.ValorFinal = _pedidoLancheBll.CalcularPrecoLanche(pedidoLanche);

            return(CreatedAtRoute("GetPedidoLanche", new { id = pedidoLanche.Id }, pedidoLanche));
        }
        public void Add(PedidoLanche pedidoLanche)
        {
            foreach (var item in pedidoLanche.IngredientesAdicionais)
            {
                item.Ingrediente = null;
            }
            //pedidoLanche.IngredientesAdicionais = null;
            pedidoLanche.Lanche = null;

            _pedidoLancheRepository.Add(pedidoLanche);
        }
Exemple #5
0
        public void TestAdd()
        {
            var data = new PedidoLanche()
            {
                IdLanche   = 3,
                ValorFinal = 30
            };

            _pedidoLancheBll.Add(data);

            _pedidoLancheRepositoryMock.Verify(x => x.Add(data), Times.Once());
        }
 public ActionResult Edit([Bind(Include = "PedidoLancheId,qtde,PedidoId,LancheId")] PedidoLanche pedidoLanche)
 {
     if (ModelState.IsValid)
     {
         db.Entry(pedidoLanche).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.LancheId = new SelectList(db.Lanches, "LancheID", "Nome", pedidoLanche.LancheId);
     ViewBag.PedidoId = new SelectList(db.Pedidoes, "PedidoId", "Nome", pedidoLanche.PedidoId);
     return(View(pedidoLanche));
 }
Exemple #7
0
        public void TestFind()
        {
            var data = new PedidoLanche {
                Id = 1, IdLanche = 1, ValorFinal = 30
            };

            _pedidoLancheRepositoryMock.Setup(theObject => theObject.Find(1)).Returns(data);
            var ingrediente = _pedidoLancheBll.Find(1);

            _pedidoLancheRepositoryMock.Verify(x => x.Find(1), Times.Once());
            Assert.NotNull(ingrediente);
            Assert.Equal(1, ingrediente.Id);
        }
Exemple #8
0
        public void TestUpdate()
        {
            var setup = new PedidoLanche()
            {
                Id         = 1,
                IdLanche   = 3,
                ValorFinal = 30
            };

            _pedidoLancheBll.Update(setup);

            _pedidoLancheRepositoryMock.Verify(x => x.Update(setup), Times.Once());
        }
        // GET: PedidosLanches/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            PedidoLanche pedidoLanche = db.PedidoLanches.Find(id);

            if (pedidoLanche == null)
            {
                return(HttpNotFound());
            }
            return(View(pedidoLanche));
        }
        // GET: PedidosLanches/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            PedidoLanche pedidoLanche = db.PedidoLanches.Find(id);

            if (pedidoLanche == null)
            {
                return(HttpNotFound());
            }
            ViewBag.LancheId = new SelectList(db.Lanches, "LancheID", "Nome", pedidoLanche.LancheId);
            ViewBag.PedidoId = new SelectList(db.Pedidoes, "PedidoId", "Nome", pedidoLanche.PedidoId);
            return(View(pedidoLanche));
        }
        public IActionResult Update(int id, [FromBody] PedidoLanche pedidoLanche)
        {
            if (pedidoLanche == null || pedidoLanche.Id != id)
            {
                return(BadRequest());
            }

            var _pedidoLanche = _pedidoLancheBll.Find(id);

            if (_pedidoLanche == null)
            {
                return(NotFound());
            }

            _pedidoLanche.IdLanche = pedidoLanche.IdLanche;
            _pedidoLanche.IngredientesAdicionais = pedidoLanche.IngredientesAdicionais;
            _pedidoLanche.ValorFinal             = pedidoLanche.ValorFinal;

            _pedidoLancheBll.Update(_pedidoLanche);

            return(new NoContentResult());
        }
Exemple #12
0
        public void TestValorePromocaoCarne()
        {
            var dataPedidoLanche = new PedidoLanche
            {
                Id       = 1,
                IdLanche = 1,
                Lanche   = new Lanche()
                {
                    Id = 1
                },
                IngredientesAdicionais = new Collection <IngredienteAdicional>()
                {
                    new IngredienteAdicional()
                    {
                        Quantidade  = 6,
                        Ingrediente = new Ingrediente()
                        {
                            Id        = 8,
                            Descricao = "Hambúrguer de carne",
                            Valor     = 3
                        }
                    }
                }
            };

            var dataLanche = new Lanche()
            {
                Descricao          = "X-Egg",
                LancheIngredientes = new Collection <LancheIngrediente>()
                {
                    new LancheIngrediente()
                    {
                        Ingrediente = new Ingrediente()
                        {
                            Id        = 8,
                            Descricao = "Hambúrguer de carne",
                            Valor     = 3
                        }
                    },
                    new LancheIngrediente()
                    {
                        Ingrediente = new Ingrediente()
                        {
                            Id        = 10,
                            Descricao = "Queijo",
                            Valor     = 0.4
                        }
                    }
                }
            };

            _lancheBllMock.Setup(theObject => theObject.Find(dataPedidoLanche.Id)).Returns(dataLanche);

            _ingredienteBllMock.Setup(theObject => theObject.FindByDescription("Hambúrguer de carne")).Returns(new Ingrediente()
            {
                Id = 8, Valor = 3
            });
            _ingredienteBllMock.Setup(theObject => theObject.FindByDescription("Queijo")).Returns(new Ingrediente()
            {
                Id = 10, Valor = 0.4
            });
            var valor = _pedidoLancheBll.CalcularPrecoLanche(dataPedidoLanche);

            _lancheBllMock.Verify(x => x.Find(1), Times.Once());
            Assert.Equal(15.4, Math.Round(valor, 2));
        }
 public void Update(PedidoLanche pedidoLanche)
 {
     _pedidoLancheRepository.Update(pedidoLanche);
 }