public List <Pedido> ListarPedidos() { const string query = @" SELECT Pedido.CodigoPedido AS 'CodigoPedido' , ItemPedido.Codigo AS 'Codigo' , ItemPedido.Descricao AS 'Descricao' , ItemPedido.PrecoUnitario AS 'PrecoUnitario' , ItemPedido.Quantidade AS 'Quantidade' FROM Pedido INNER JOIN ItemPedido ON Pedido.CodigoPedido = ItemPedido.CodigoPedido"; using var conexao = ConnectionFactory.AbrirConexao(); var pedidos = new Dictionary <string, Pedido>(); conexao.Query <Pedido, ItemPedido, Pedido>(query, (pedido, itemPedido) => { if (!pedidos.TryGetValue(pedido.CodigoPedido, out var pedidoDicionario)) { pedidos.Add(pedido.CodigoPedido, pedidoDicionario = pedido); } pedidoDicionario.Itens ??= new List <ItemPedido>(); pedidoDicionario.Itens.Add(itemPedido); return(pedido); }, splitOn: "Codigo"); return(pedidos.Values.ToList()); }
public void AtualizarPedido(Pedido pedido) { using var conexao = ConnectionFactory.AbrirConexao(); DeletarItensPedido(conexao, pedido.CodigoPedido); InserirItensPedido(conexao, pedido.Itens); }
public void DeletarPedido(string codigoPedido) { const string deletePedido = "DELETE FROM Pedido WHERE CodigoPedido = @CodigoPedido"; using var conexao = ConnectionFactory.AbrirConexao(); DeletarItensPedido(conexao, codigoPedido); conexao.Execute(deletePedido, new { CodigoPedido = codigoPedido }); }
private void CriarTabelaPedido() { const string create = @" CREATE TABLE IF NOT EXISTS Pedido ( CodigoPedido VARCHAR(10) PRIMARY KEY, DataCriacao TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP );"; using var conexao = ConnectionFactory.AbrirConexao(); conexao.Execute(create); }
public void InserirPedido(Pedido pedido) { const string insertPedido = @" INSERT INTO Pedido (CodigoPedido) VALUES (@CodigoPedido);"; using var conexao = ConnectionFactory.AbrirConexao(); conexao.Execute(insertPedido, pedido); InserirItensPedido(conexao, pedido.Itens); }
private void CriarTabelaItemPedido() { const string create = @" CREATE TABLE IF NOT EXISTS ItemPedido ( Codigo INTEGER PRIMARY KEY, CodigoPedido TEXT NOT NULL, Descricao TEXT NOT NULL, PrecoUnitario REAL NOT NULL, Quantidade INTEGER NOT NULL, FOREIGN KEY (CodigoPedido) REFERENCES Pedido (CodigoPedido) );"; using var conexao = ConnectionFactory.AbrirConexao(); conexao.Execute(create); }