public async Task OnPostAsync() { var lan = await _lancheService.Obter(Lanche.Id); var ings = await _lancheService.ListarIngredientes(); lan.Ingredientes.Clear(); foreach (var ing in ings) { var ingrediente = Lanche.Ingredientes.Where(w => w.Id == ing.Id && w.Quantidade > 0).FirstOrDefault(); if (ingrediente != null) { ing.Quantidade = ingrediente.Quantidade; lan.Ingredientes.Add(ing); } } var desconto = await _promocaoService.CalculaDesconto(lan); var pedido = new Pedido(); var item = new Item() { Descricao = lan.Nome, Quantidade = 1, Valor = lan.Total }; pedido.Itens.Add(item); if (desconto != null) { pedido.Descontos.Add(desconto); } await _pedidoService.Criar(pedido); Pedido = pedido; }
// public async Task<IActionResult> OnPostAsync() //(2) // { // if(!ModelState.IsValid) // { // return Page(); // } // //Some logic hereā¦ // return RedirectToPage(); // } public async Task OnPostAsync() { Lanche = await _lancheService.Obter(compra); Ingredientes = await _lancheService.ListarIngredientes(); var defaultIngrediente = new Ingrediente { Quantidade = 0 }; Ingredientes = Ingredientes.GroupJoin(Lanche.Ingredientes, i => i.Nome, o => o.Nome, (i, o) => new { i = i, o = o.DefaultIfEmpty(defaultIngrediente) }) .Select(s => new Ingrediente { Id = s.i.Id, Nome = s.i.Nome, Valor = s.i.Valor, Quantidade = s.o.Select(m => m.Quantidade).FirstOrDefault() }) .ToList(); }