public override void Salvar(EntidadeDominio entidade) { if (connection.State == ConnectionState.Closed) { connection.Open(); } ClientePFXCC clientePFXCC = (ClientePFXCC)entidade; // construtor já passando conexão de cliente para cartao CartaoCreditoDAO ccDAO = new CartaoCreditoDAO(connection, false); ccDAO.Salvar(clientePFXCC.CC); pst.CommandText = "INSERT INTO tb_cliente_cartao(id_cliente, id_cartao) VALUES (:1, :2); "; parameters = new NpgsqlParameter[] { new NpgsqlParameter("1", clientePFXCC.ID), new NpgsqlParameter("2", clientePFXCC.CC.ID) }; pst.Parameters.Clear(); pst.Parameters.AddRange(parameters); pst.Connection = connection; pst.CommandType = CommandType.Text; pst.ExecuteNonQuery(); if (ctrlTransaction == true) { pst.CommandText = "COMMIT WORK"; connection.Close(); } return; }
public string processar(EntidadeDominio entidade) { StringBuilder sb = new StringBuilder(); if (entidade.GetType() == typeof(ClientePFXCC)) { ClientePFXCC clientePFXCC = (ClientePFXCC)entidade; // verifica se cliente foi selecionado if (clientePFXCC.ID == 0) { sb.Append("ID CLIENTE INFORMADO INCORRETO! <br />"); } // verifica se cc está vazio ou nulo if (clientePFXCC.CC == null) { sb.Append("CARTÃO DE CRÉDITO É UM CAMPO OBRIGATÓRIO! <br />"); } else { ValidadorCartaoCredito valCC = new ValidadorCartaoCredito(); String msg = valCC.processar(clientePFXCC.CC); if (msg != null) { sb.Append(msg); } } } else { sb.Append("CLIENTE PESSOA FÍSICA X CARTÃO NÃO PODE SER VALIDADA, POIS ENTIDADE NÃO É CLIENTE PESSOA FÍSICA X CARTÃO! <br />"); } if (sb.Length != 0) { return(sb.ToString()); } return(null); }
public override List <EntidadeDominio> Consultar(EntidadeDominio entidade) { if (connection.State == ConnectionState.Closed) { connection.Open(); } ClientePFXCC clientePFXCC = (ClientePFXCC)entidade; StringBuilder sql = new StringBuilder(); sql.Append("SELECT * FROM tb_cliente_cartao JOIN tb_cartao_credito ON (tb_cliente_cartao.id_cartao = tb_cartao_credito.id_cc) "); sql.Append(" JOIN tb_bandeira ON (tb_cartao_credito.bandeira_cc_fk = tb_bandeira.id_bandeira) "); // WHERE sem efeito, usado apenas para poder diminuir o número de ifs da construção da query sql.Append("WHERE 1 = 1 "); if (clientePFXCC.ID != 0) { sql.Append("AND id_cliente = :1 "); } if (clientePFXCC.CC != null) { if (clientePFXCC.CC.ID != 0) { sql.Append(" AND id_cartao = :2 "); } } sql.Append("ORDER BY tb_cliente_cartao.id_cliente,tb_cliente_cartao.id_cartao "); pst.CommandText = sql.ToString(); parameters = new NpgsqlParameter[] { new NpgsqlParameter("1", clientePFXCC.ID), new NpgsqlParameter("2", clientePFXCC.CC.ID) }; pst.Parameters.Clear(); pst.Parameters.AddRange(parameters); pst.Connection = connection; pst.CommandType = CommandType.Text; reader = pst.ExecuteReader(); // Lista de retorno da consulta do banco de dados, que conterá os cartões do cliente encontrados List <EntidadeDominio> clientePFXCCs = new List <EntidadeDominio>(); while (reader.Read()) { clientePFXCC = new ClientePFXCC(); clientePFXCC.ID = Convert.ToInt32(reader["id_cliente"]); clientePFXCC.CC.ID = Convert.ToInt32(reader["id_cc"]); clientePFXCC.CC.NomeImpresso = reader["nome_impresso_cc"].ToString(); clientePFXCC.CC.NumeroCC = reader["numero_cc"].ToString(); clientePFXCC.CC.Bandeira.ID = Convert.ToInt32(reader["id_bandeira"]); clientePFXCC.CC.Bandeira.Nome = reader["nome_bandeira"].ToString(); clientePFXCC.CC.CodigoSeguranca = reader["codigo_seguranca_cc"].ToString(); clientePFXCCs.Add(clientePFXCC); } connection.Close(); return(clientePFXCCs); }