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));
        }
示例#4
0
 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));
     }
 }