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; }
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; }