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