public List <Pedido> find(int codigo) { List <Pedido> lista = new List <Pedido>(); lista.Clear(); try { var query = "SELECT cliente_pedido.cpf, pedido.numero_mesa, pedido.codigo, to_char(pedido.data,'DD/MM/YYYY HH24:MI:SS'), "; query += "pedido.preco_total, pedido.pagamento_confirmado FROM pedido "; query += $"LEFT JOIN cliente_pedido ON pedido.codigo=cliente_pedido.codigo_pedido "; if (codigo == -1) { query += $" WHERE pedido.pagamento_confirmado = true"; } else { query += $" WHERE pedido.codigo={codigo}"; } ConnectionFactory.open(); var data = ConnectionFactory.command(query); while (data.Read()) { Cliente cliente = new Cliente(); if (!data.IsDBNull(0)) { cliente.CPF = data.GetString(0); } else { cliente.CPF = null; } Mesa mesa = new Mesa(null); if (!data.IsDBNull(1)) { mesa.Numero = data.GetInt32(1); } else { mesa.Numero = -1; } Pedido pedido = new Pedido(mesa, cliente); pedido.Codigo = data.GetInt32(2); pedido.Data = data.GetString(3); if (!data.IsDBNull(4)) { pedido.PrecoTotal = data.GetDecimal(4); } else { pedido.PrecoTotal = -1; } pedido.PagamentoConfirmado = data.GetBoolean(5); lista.Add(pedido); } ConnectionFactory.close(); } catch (Exception e) { ConnectionFactory.close(); throw e; } return(lista); }