Exemple #1
0
        public override void Alterar(EntidadeDominio entidade)
        {
            if (connection.State == ConnectionState.Closed)
            {
                connection.Open();
            }
            Cliente cliente = (Cliente)entidade;

            pst.CommandText = "UPDATE cliente_pf SET nome_cli_pf = ?1, telefone_cli_fk = ?2, email_cli_pf = ?3, cpf_cli_pf = ?4, genero_cli_pf = ?5, dt_nascimento_cli_pf = ?6 WHERE id_cli_pf = ?7 ";
            parameters      = new MySqlParameter[]
            {
                new MySqlParameter("1", cliente.Nome),
                new MySqlParameter("2", cliente.Telefone.ID),
                new MySqlParameter("3", cliente.Email),
                new MySqlParameter("4", cliente.CPF),
                new MySqlParameter("5", cliente.Genero),
                new MySqlParameter("6", cliente.DataNascimento),
                new MySqlParameter("7", cliente.ID)
            };

            pst.Parameters.Clear();
            pst.Parameters.AddRange(parameters);
            pst.Connection  = connection;
            pst.CommandType = CommandType.Text;
            pst.ExecuteNonQuery();

            // construtor já passando conexão de cliente para telefone
            TelefoneDAO telefoneDAO = new TelefoneDAO(connection, false);

            telefoneDAO.Alterar(cliente.Telefone);

            pst.CommandText = "COMMIT WORK";
            connection.Close();
            return;
        }
Exemple #2
0
        public override void Alterar(EntidadeDominio entidade)
        {
            if (connection.State == ConnectionState.Closed)
            {
                connection.Open();
            }
            ClientePF cliente = (ClientePF)entidade;

            pst.CommandText = "UPDATE tb_cliente_pf SET nome_cli_pf = :1, telefone_cli_fk = :2, email_cli_pf = :3, cpf_cli_pf = :4, genero_cli_pf = :5, dt_nascimento_cli_pf = :6 WHERE id_cli_pf = :7 ";
            parameters      = new NpgsqlParameter[]
            {
                new NpgsqlParameter("1", cliente.Nome),
                new NpgsqlParameter("2", cliente.Telefone.ID),
                new NpgsqlParameter("3", cliente.Email),
                new NpgsqlParameter("4", cliente.CPF),
                new NpgsqlParameter("5", cliente.Genero),
                new NpgsqlParameter("6", cliente.DataNascimento),
                new NpgsqlParameter("7", cliente.ID)
            };

            pst.Parameters.Clear();
            pst.Parameters.AddRange(parameters);
            pst.Connection  = connection;
            pst.CommandType = CommandType.Text;
            pst.ExecuteNonQuery();

            // construtor já passando conexão de cliente para endereço
            EnderecoDAO enderecoDAO = new EnderecoDAO(connection, false);

            //// primeiro faço exclusão dos registros existentes e depois faço nova inclusão
            //// para não ter erro na quantidade de endereços
            //enderecoDAO.Excluir(cliente);
            //foreach (Endereco endereco in cliente.Enderecos)
            //{
            //    enderecoDAO.Salvar(endereco);
            //}

            // alterado a forma que faz a alteração, quando o cliente for fazer alteração nos dados cadastrais,
            // apenas UM endereço pode ser alterado, logo não preciso mais do foreach e será feito alteração individual
            // tratamento de n-n de endereço e cliente será feito em outra DAO
            enderecoDAO.Alterar(cliente.Enderecos.First());

            // construtor já passando conexão de cliente para cc
            // Cartão de cliente será efetuado com outra abordagem, apenas para compra será obrigatório informar um cc
            // para apenas o cadastro não será obrigatório
            //CartaoCreditoDAO ccDAO = new CartaoCreditoDAO(connection, false);
            //// primeiro faço exclusão dos registros existentes e depois faço nova inclusão
            //// para não ter erro na quantidade de endereços
            //ccDAO.Excluir(cliente);
            //foreach (CartaoCredito cc in cliente.CartoesCredito)
            //{
            //    ccDAO.Salvar(cc);
            //}

            // construtor já passando conexão de cliente para telefone
            TelefoneDAO telefoneDAO = new TelefoneDAO(connection, false);

            telefoneDAO.Alterar(cliente.Telefone);

            pst.CommandText = "COMMIT WORK";
            connection.Close();
            return;
        }