コード例 #1
0
        public JsonResult Create(List <Item> itens, int numeroMesa)
        {
            try
            {
                var mesa        = 0;
                var funcionario = FuncionarioDAO.GetFuncionarioIdBySession();

                //INSERT NOVA MESA SE JÁ NÃO EXISTIR UMA MESA COM O MESMO ID
                mesa = PedidosDAO.GetMesaByNumero(numeroMesa);

                if (mesa == 0)
                {
                    mesa = ConnectionFactory.Query <int>(@"
                        INSERT INTO MESAS (numeroMesa) OUTPUT INSERTED.[mesaId] VALUES (@mesa)",
                                                         new
                    {
                        mesa = numeroMesa
                    }).FirstOrDefault();
                }

                var pedido = new Pedido(DateTime.Now, funcionario);

                //INSERT PEDIDO
                pedido.Id = ConnectionFactory.Query <int>(@"
                    INSERT INTO PEDIDOS 
                    (horarioPedido, pendencia, pagamento, funcionario_id, mesaId)
                    OUTPUT INSERTED.[pedidoId] 
                    VALUES (@horario, @pendencia, @pagamento, @funcionario_id, @mesaId)",
                                                          new
                {
                    horario        = pedido.HorarioPedido,
                    pendencia      = pedido.Pendencia,
                    pagamento      = pedido.Pagamento,
                    funcionario_id = pedido.Funcionario.Id,
                }).FirstOrDefault();

                //INSERT ITEM PARA CADA ITEM NO ARRAY COM O PEDIDO ID RECÉM INSERTADO
                foreach (var item in itens)
                {
                    item.Pedido = new Pedido();
                    item.Pedido = pedido;

                    ConnectionFactory.Execute(@"
                        INSERT INTO ITENS VALUES (@quantidade, @produto_id, @Pedido_pedidoId)",
                                              new
                    {
                        quantidade      = item.Quantidade,
                        produto_id      = item.Produto.Id,
                        Pedido_pedidoId = item.Pedido.Id
                    });
                }

                return(new ApiRetorno(true).ToJson());
            }
            catch (Exception ex)
            {
                return(new ApiRetorno(false).ToJson());
            }
        }