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); }
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)); }
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); }
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()); }
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); }