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