public async Task <IActionResult> Create(int?cid) { if (cid.HasValue) { var cliente = await _context.Clientes.FindAsync(cid); if (cliente != null) { _context.Entry(cliente).Collection(c => c.Pedidos).Load(); PedidoModel pedido = null; if (_context.Pedidos.Any(p => p.IdCliente == cid && !p.DataPedido.HasValue)) { pedido = await _context.Pedidos .FirstOrDefaultAsync(p => p.IdCliente == cid && !p.DataPedido.HasValue); } else { pedido = new PedidoModel { IdCliente = cid.Value, ValorTotal = 0 }; cliente.Pedidos.Add(pedido); await _context.SaveChangesAsync(); } return(RedirectToAction("Index", "ItemPedido", new { ped = pedido.IdPedido })); } TempData["mensagem"] = MensagemModel.Serializar("Cliente não encontrado", TipoMensagem.Erro); return(RedirectToAction("Index", "Cliente")); } TempData["mensagem"] = MensagemModel.Serializar("Cliente não informado", TipoMensagem.Erro); return(RedirectToAction("Index", "Cliente")); }
public async Task <IActionResult> Index(int?cid) { if (cid.HasValue) { var cliente = await _context.Clientes.FindAsync(cid); if (cliente != null) { _context.Entry(cliente).Collection(c => c.Enderecos).Load(); ViewBag.Cliente = cliente; return(View(cliente.Enderecos)); } else { TempData["mensagem"] = MensagemModel.Serializar("Cliente não encontrado.", TipoMensagem.Erro); return(RedirectToAction("Index", "Cliente")); } } else { TempData["mensagem"] = MensagemModel.Serializar("Só é possível mostrar endereços de um cliente específico.", TipoMensagem.Erro); return(RedirectToAction("Index", "Cliente")); } }
public async Task <IActionResult> Delete(int?ped, int?prod) { if (!ped.HasValue || !prod.HasValue) { TempData["mensagem"] = MensagemModel.Serializar("Item de pedido não informado.", TipoMensagem.Erro); return(RedirectToAction("Index", "Cliente")); } if (!ItemPedidoExiste(ped.Value, prod.Value)) { TempData["mensagem"] = MensagemModel.Serializar("Item de pedido não encontrado.", TipoMensagem.Erro); return(RedirectToAction("Index", "Cliente")); } var itemPedido = await _context.ItensPedidos.FindAsync(ped, prod); _context.Entry(itemPedido).Reference(i => i.Produto).Load(); return(View(itemPedido)); }
public async Task <IActionResult> Create(int?id, [FromForm] ClienteModel cliente) { if (ModelState.IsValid) { if (id.HasValue) { if (ClienteExiste(id.Value)) { _context.Clientes.Update(cliente); _context.Entry(cliente).Property(x => x.Senha).IsModified = false; if (await _context.SaveChangesAsync() > 0) { TempData["mensagem"] = MensagemModel.Serializar("Cliente alterado com sucesso."); } else { TempData["mensagem"] = MensagemModel.Serializar("Erro ao alterar cliente.", TipoMensagem.Erro); } } else { TempData["mensagem"] = MensagemModel.Serializar("Cliente não encontrado.", TipoMensagem.Erro); } } else { _context.Clientes.Add(cliente); if (await _context.SaveChangesAsync() > 0) { TempData["mensagem"] = MensagemModel.Serializar("Cliente cadastrado com sucesso."); } else { TempData["mensagem"] = MensagemModel.Serializar("Erro ao cadastrar cliente.", TipoMensagem.Erro); } } return(RedirectToAction(nameof(Index))); } else { return(View(cliente)); } }