예제 #1
0
        public async Task Adicionar(Pedido pedido)
        {
            using (var cmd = DbExtensions.BuildCommand("INSERT INTO Pedido VALUES (@Id, @Data, @Total)"))
            {
                cmd.Parameters.AddWithValue("@Id", pedido.Id);
                cmd.Parameters.AddWithValue("@Data", pedido.Data);
                cmd.Parameters.AddWithValue("@Total", pedido.Total);

                await cmd.Connection.OpenAsync();

                await cmd.ExecuteNonQueryAsync();
            }

            using (var cmd = DbExtensions.BuildCommand("INSERT INTO PedidoItem (PedidoId, ProdutoId, Quantidade, Total) VALUES (@PedidoId, @ProdutoId, @Quantidade, @Total)"))
            {
                cmd.Parameters.AddWithValue("@PedidoId", pedido.Id);
                cmd.Parameters.Add("@ProdutoId", SqlDbType.Int);
                cmd.Parameters.Add("@Quantidade", SqlDbType.Int);
                cmd.Parameters.Add("@Total", SqlDbType.Decimal);

                await cmd.Connection.OpenAsync();

                foreach (var item in pedido.Itens)
                {
                    cmd.Parameters["@ProdutoId"].Value  = item.Produto.Id;
                    cmd.Parameters["@Quantidade"].Value = item.Quantidade;
                    cmd.Parameters["@Total"].Value      = item.Total;

                    await cmd.ExecuteNonQueryAsync();
                }
            }
        }
예제 #2
0
        public async Task <IEnumerable <Produto> > BuscarVitrine()
        {
            var produtos = new List <Produto>();

            using (var cmd = DbExtensions.BuildCommand("SELECT Id, Descricao, Valor, Imagem FROM Produto"))
            {
                await cmd.Connection.OpenAsync();

                using (var dr = await cmd.ExecuteReaderAsync(CommandBehavior.CloseConnection))
                {
                    while (dr.Read())
                    {
                        produtos.Add(new Produto()
                        {
                            Id        = dr.GetInt32(0),
                            Descricao = dr.GetString(1),
                            Valor     = dr.GetDecimal(2),
                            Imagem    = dr.GetString(3)
                        });
                    }
                }
            }

            return(produtos);
        }
예제 #3
0
        public async Task <Pedido> BuscarPor(int id)
        {
            #region Consulta
            const string consulta = @"
SELECT
	  p.Id
	, p.Data
	, pr.Id
	, pr.Descricao
	, pr.Valor
	, pr.Imagem
FROM PedidoItem pi 
INNER JOIN Produto pr ON pr.Id = pi.ProdutoId
INNER JOIN Pedido p ON p.Id = pi.PedidoId
WHERE
	p.Id = @Id"    ;
            #endregion

            Pedido pedido = null;

            using (var cmd = DbExtensions.BuildCommand(consulta))
            {
                cmd.Parameters.AddWithValue("@Id", id);
                await cmd.Connection.OpenAsync();

                using (var dr = await cmd.ExecuteReaderAsync(CommandBehavior.CloseConnection))
                {
                    while (dr.Read())
                    {
                        if (pedido == null)
                        {
                            pedido = new Pedido()
                            {
                                Id   = dr.GetGuid(0),
                                Data = dr.GetDateTime(1)
                            }
                        }
                        ;

                        pedido.Adicionar(
                            new Pedido.Item(
                                new Produto()
                        {
                            Id        = dr.GetInt32(2),
                            Descricao = dr.GetString(3),
                            Valor     = dr.GetDecimal(4),
                            Imagem    = dr.GetString(5)
                        }, dr.GetInt32(0)));
                    }
                }
            }

            return(pedido);
        }
예제 #4
0
        public async Task Adicionar(NotaFiscal item)
        {
            using (var cmd = DbExtensions.BuildCommand("INSERT INTO NotaFiscal VALUES (@Codigo, @Data, @Valor)"))
            {
                cmd.Parameters.AddWithValue("@Codigo", item.Codigo);
                cmd.Parameters.AddWithValue("@Data", item.Data);
                cmd.Parameters.AddWithValue("@Valor", item.Valor);

                await cmd.Connection.OpenAsync();

                await cmd.ExecuteNonQueryAsync();
            }
        }
예제 #5
0
        public async Task <Produto> BuscarPor(int id)
        {
            using (var cmd = DbExtensions.BuildCommand("SELECT Id, Descricao, Valor, Imagem FROM Produto WHERE Id = @Id"))
            {
                cmd.Parameters.AddWithValue("@Id", id);
                await cmd.Connection.OpenAsync();

                using (var dr = await cmd.ExecuteReaderAsync(CommandBehavior.CloseConnection))
                {
                    if (dr.Read())
                    {
                        return(new Produto()
                        {
                            Id = dr.GetInt32(0),
                            Descricao = dr.GetString(1),
                            Valor = dr.GetDecimal(2),
                            Imagem = dr.GetString(3)
                        });
                    }
                }
            }

            return(null);
        }
예제 #6
0
        public async Task <IEnumerable <Pedido> > BuscarUltimosPedidos()
        {
            var pedidos = new List <Pedido>();

            using (var cmd = DbExtensions.BuildCommand("SELECT Id, Data, Total FROM Pedido"))
            {
                await cmd.Connection.OpenAsync();

                using (var dr = await cmd.ExecuteReaderAsync(CommandBehavior.CloseConnection))
                {
                    while (dr.Read())
                    {
                        pedidos.Add(new Pedido()
                        {
                            Id    = dr.GetGuid(0),
                            Data  = dr.GetDateTime(1),
                            Total = dr.GetDecimal(2)
                        });
                    }
                }
            }

            return(pedidos);
        }