public List <Produto> PesquisarPorNome(string nome)
        {
            SqlCommand cmd = new SqlCommand();

            cmd.CommandType  = CommandType.Text;
            cmd.CommandText  = " SELECT * FROM PRODUTO AS P ";
            cmd.CommandText += " LEFT JOIN CLIENTE AS C ON(P.IdCliente = C.IdCliente) WHERE C.Nome LIKE @NOME ";

            cmd.Parameters.AddWithValue("@Nome", "%" + nome + "%");

            SqlDataReader    reader    = Contexto.ExecutaComandoComRetorno(cmd);
            var              produtos  = new List <Produto>();
            ClienteAplicacao aplicacao = new ClienteAplicacao();

            if (reader.HasRows)
            {
                while (reader.Read())
                {
                    Produto produto = new Produto();
                    produto.IdProduto   = int.Parse(reader["IdProduto"].ToString());
                    produto.NomeProduto = reader["NomeProduto"].ToString();
                    produto.Valor       = Decimal.Parse(reader["Valor"].ToString());
                    produto.Disponivel  = bool.Parse(reader["Disponivel"].ToString());
                    produto.IdCliente   = Int32.Parse(reader["IdCliente"].ToString());
                    //produto.Cliente = aplicacao.ListarTodos();
                    //produto.Cliente = aplicacao.ListarPorId((int)reader["IdCliente"]);

                    produto.Cliente = new Cliente();
                    //produto.Cliente.IdCliente = int.Parse(reader["IdCliente"].ToString());
                    produto.Cliente.Nome         = reader["Nome"].ToString();
                    produto.Cliente.Sobrenome    = reader["Sobrenome"].ToString();
                    produto.Cliente.Email        = reader["Email"].ToString();
                    produto.Cliente.DataCadastro = DateTime.Parse(reader["DataCadastro"].ToString());
                    produto.Cliente.Ativo        = bool.Parse(reader["Ativo"].ToString());

                    produtos.Add(produto);
                }
            }
            else
            {
                produtos = null;
            }
            //reader.Close();
            return(produtos);
        }
        public Produto ListarPorId(int id)
        {
            SqlCommand cmd = new SqlCommand();

            cmd.CommandType  = CommandType.Text;
            cmd.CommandText  = " SELECT * FROM PRODUTO AS P ";
            cmd.CommandText += " LEFT JOIN CLIENTE AS C ON(P.IdCliente = C.IdCliente) WHERE IdProduto = @IdProduto ";
            cmd.Parameters.AddWithValue("@IdProduto", id);

            SqlDataReader reader = Contexto.ExecutaComandoComRetorno(cmd);

            Produto produto = new Produto();
            //Cliente cliente = new Cliente();
            ClienteAplicacao aplicacao = new ClienteAplicacao();

            if (reader.HasRows)
            {
                reader.Read();
                produto.IdProduto   = int.Parse(reader["IdProduto"].ToString());
                produto.NomeProduto = reader["NomeProduto"].ToString();
                produto.Valor       = Decimal.Parse(reader["Valor"].ToString());
                produto.Disponivel  = bool.Parse(reader["Disponivel"].ToString());
                produto.IdCliente   = int.Parse(reader["IdCliente"].ToString());
                //produto.Cliente = aplicacao.ListarPorId(id);
                //produto.Cliente = aplicacao.ListarPorId((int)reader["IdCliente"]);

                produto.Cliente = new Cliente();
                //produto.Cliente.IdCliente = int.Parse(reader["IdCliente"].ToString());
                produto.Cliente.Nome         = reader["Nome"].ToString();
                produto.Cliente.Sobrenome    = reader["Sobrenome"].ToString();
                produto.Cliente.Email        = reader["Email"].ToString();
                produto.Cliente.DataCadastro = DateTime.Parse(reader["DataCadastro"].ToString());
                produto.Cliente.Ativo        = bool.Parse(reader["Ativo"].ToString());
            }
            else
            {
                produto = null;
            }
            reader.Close();
            return(produto);
        }
        public Produto ListarPorId(int id)
        {
            SqlCommand cmd = new SqlCommand();
            cmd.CommandType = CommandType.Text;
            cmd.CommandText = " SELECT * FROM PRODUTO AS P ";
            cmd.CommandText += " LEFT JOIN CLIENTE AS C ON(P.IdCliente = C.IdCliente) WHERE IdProduto = @IdProduto ";
            cmd.Parameters.AddWithValue("@IdProduto", id);

            SqlDataReader reader = Contexto.ExecutaComandoComRetorno(cmd);

            Produto produto = new Produto();
            //Cliente cliente = new Cliente();
            ClienteAplicacao aplicacao = new ClienteAplicacao();

            if (reader.HasRows)
            {
                reader.Read();
                produto.IdProduto = int.Parse(reader["IdProduto"].ToString());
                produto.NomeProduto = reader["NomeProduto"].ToString();
                produto.Valor = Decimal.Parse(reader["Valor"].ToString());
                produto.Disponivel = bool.Parse(reader["Disponivel"].ToString());
                produto.IdCliente = int.Parse(reader["IdCliente"].ToString());
                //produto.Cliente = aplicacao.ListarPorId(id);
                //produto.Cliente = aplicacao.ListarPorId((int)reader["IdCliente"]);

                produto.Cliente = new Cliente();
                //produto.Cliente.IdCliente = int.Parse(reader["IdCliente"].ToString());
                produto.Cliente.Nome = reader["Nome"].ToString();
                produto.Cliente.Sobrenome = reader["Sobrenome"].ToString();
                produto.Cliente.Email = reader["Email"].ToString();
                produto.Cliente.DataCadastro = DateTime.Parse(reader["DataCadastro"].ToString());
                produto.Cliente.Ativo = bool.Parse(reader["Ativo"].ToString());
            }
            else
            {
                produto = null;
            }
            reader.Close();
            return produto;
        }
 public ClienteController()
 {
     aplicacao = new ClienteAplicacao();
 }
 public ProdutoController()
 {
     appCliente = new ClienteAplicacao();
     appProduto = new ProdutoAplicacao();
 }
        public List<Produto> ListarTodos()
        {
            SqlCommand cmd = new SqlCommand();
            cmd.CommandType = CommandType.Text;
            cmd.CommandText = " SELECT * FROM PRODUTO AS P ";
            cmd.CommandText += " LEFT JOIN CLIENTE AS C ON(P.IdCliente = C.IdCliente) ";

            SqlDataReader reader = Contexto.ExecutaComandoComRetorno(cmd);
            var produtos = new List<Produto>();
            ClienteAplicacao aplicacao = new ClienteAplicacao();

            if (reader.HasRows)
            {
                while (reader.Read())
                {
                    Produto produto = new Produto();
                    produto.IdProduto = int.Parse(reader["IdProduto"].ToString());
                    produto.NomeProduto = reader["NomeProduto"].ToString();
                    produto.Valor = Decimal.Parse(reader["Valor"].ToString());
                    produto.Disponivel = bool.Parse(reader["Disponivel"].ToString());
                    produto.IdCliente = Int32.Parse(reader["IdCliente"].ToString());
                    //produto.Cliente = aplicacao.ListarTodos();
                    //produto.Cliente = aplicacao.ListarPorId((int)reader["IdCliente"]);

                    produto.Cliente = new Cliente();
                    //produto.Cliente.IdCliente = int.Parse(reader["IdCliente"].ToString());
                    produto.Cliente.Nome = reader["Nome"].ToString();
                    produto.Cliente.Sobrenome = reader["Sobrenome"].ToString();
                    produto.Cliente.Email = reader["Email"].ToString();
                    produto.Cliente.DataCadastro = DateTime.Parse(reader["DataCadastro"].ToString());
                    produto.Cliente.Ativo = bool.Parse(reader["Ativo"].ToString());

                    produtos.Add(produto);
                }
            }
            else
            {
                produtos = null;
            }
             reader.Close();
            return produtos;
        }