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 Salvar(EntidadeDominio entidade) { if (connection.State == ConnectionState.Closed) { connection.Open(); } Cliente cliente = (Cliente)entidade; TelefoneDAO telefoneDAO = new TelefoneDAO(connection, false); telefoneDAO.Salvar(cliente.Telefone); pst.CommandText = "INSERT INTO cliente_pf (nome_cli_pf, telefone_cli_fk, email_cli_pf, cpf_cli_pf, genero_cli_pf, dt_nascimento_cli_pf, dt_cadastro_cli_pf) VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7); SELECT LAST_INSERT_ID(); "; 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.DataCadastro) }; pst.Parameters.Clear(); pst.Parameters.AddRange(parameters); pst.Connection = connection; pst.CommandType = CommandType.Text; pst.ExecuteNonQuery(); cliente.ID = (int)pst.LastInsertedId; // construtor já passando conexão de ClientePFDAO para EnderecoDAO EnderecoDAO enderecoDAO = new EnderecoDAO(connection, false); foreach (Endereco endereco in cliente.Enderecos) { enderecoDAO.Salvar(endereco); } // construtor para salvar o relacionamento n x n de cliente e endereço ClienteEnderecoDAO clienteXEnderecoDAO = new ClienteEnderecoDAO(connection, false); ClienteEndereco clienteEndereco = new ClienteEndereco(); clienteEndereco.ID = cliente.ID; clienteEndereco.Endereco = cliente.Enderecos.First(); clienteXEnderecoDAO.Salvar(clienteEndereco); 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; }
public override void Salvar(EntidadeDominio entidade) { if (connection.State == ConnectionState.Closed) { connection.Open(); } ClientePF cliente = (ClientePF)entidade; // construtor já passando conexão de ClientePFDAO para EnderecoDAO EnderecoDAO enderecoDAO = new EnderecoDAO(connection, false); foreach (Endereco endereco in cliente.Enderecos) { enderecoDAO.Salvar(endereco); } // construtor já passando conexão de ClientePFDAO para CartaoCreditoDAO // 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); //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.Salvar(cliente.Telefone); pst.CommandText = "INSERT INTO tb_cliente_pf (nome_cli_pf, telefone_cli_fk, email_cli_pf, cpf_cli_pf, genero_cli_pf, dt_nascimento_cli_pf, dt_cadastro_cli_pf) VALUES (:1, :2, :3, :4, :5, :6, :7) RETURNING id_cli_pf "; 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.DataCadastro) }; pst.Parameters.Clear(); pst.Parameters.AddRange(parameters); pst.Connection = connection; pst.CommandType = CommandType.Text; cliente.ID = entidade.ID = (int)pst.ExecuteScalar(); // já executa o comando na linha anterior //pst.ExecuteNonQuery(); // construtor para salvar o relacionamento n x n de cliente e endereço ClientePFXEnderecoDAO clienteXEnderecoDAO = new ClientePFXEnderecoDAO(connection, false); ClientePFXEndereco clientePFXEndereco = new ClientePFXEndereco(); clientePFXEndereco.ID = cliente.ID; clientePFXEndereco.Endereco = cliente.Enderecos.First(); clienteXEnderecoDAO.Salvar(clientePFXEndereco); // construtor para salvar o relacionamento n x n de cliente e cartão // 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 //ClientePFXCartaoDAO clienteXccDAO = new ClientePFXCartaoDAO(connection, false); //clienteXccDAO.Salvar(cliente); pst.CommandText = "COMMIT WORK"; connection.Close(); return; }