public override void Salvar(EntidadeDominio entidade) { if (connection.State == ConnectionState.Closed) { connection.Open(); } ClienteCartao clienteCartao = (ClienteCartao)entidade; // construtor já passando conexão de cliente para cartao CartaoCreditoDAO ccDAO = new CartaoCreditoDAO(connection, false); ccDAO.Salvar(clienteCartao.CC); pst.CommandText = "INSERT INTO cliente_cartao(id_cliente, id_cartao) VALUES (?1, ?2); "; parameters = new MySqlParameter[] { new MySqlParameter("?1", clienteCartao.ID), new MySqlParameter("?2", clienteCartao.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(ClienteCartao)) { ClienteCartao clienteCartao = (ClienteCartao)entidade; // verifica se cliente foi selecionado if (clienteCartao.ID == 0) { sb.Append("ID CLIENTE INFORMADO INCORRETO! <br />"); } // verifica se cc está vazio ou nulo if (clienteCartao.CC == null) { sb.Append("CARTÃO DE CRÉDITO É UM CAMPO OBRIGATÓRIO! <br />"); } else { ValidadorCartaoCredito valCC = new ValidadorCartaoCredito(); String msg = valCC.processar(clienteCartao.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(); } ClienteCartao clienteCartao = (ClienteCartao)entidade; StringBuilder sql = new StringBuilder(); sql.Append("SELECT * FROM cliente_cartao JOIN cartao_credito ON (cliente_cartao.id_cartao = cartao_credito.id_cc) "); sql.Append(" JOIN bandeira ON (cartao_credito.bandeira_cc_fk = 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 (clienteCartao.ID != 0) { sql.Append("AND id_cliente = ?1 "); } if (clienteCartao.CC != null) { if (clienteCartao.CC.ID != 0) { sql.Append(" AND id_cartao = ?2 "); } } sql.Append("ORDER BY cliente_cartao.id_cliente,cliente_cartao.id_cartao "); pst.CommandText = sql.ToString(); parameters = new MySqlParameter[] { new MySqlParameter("?1", clienteCartao.ID), new MySqlParameter("?2", clienteCartao.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> clienteCartaos = new List <EntidadeDominio>(); while (reader.Read()) { clienteCartao = new ClienteCartao(); clienteCartao.ID = Convert.ToInt32(reader["id_cliente"]); clienteCartao.CC.ID = Convert.ToInt32(reader["id_cc"]); clienteCartao.CC.NomeImpresso = reader["nome_impresso_cc"].ToString(); clienteCartao.CC.NumeroCC = reader["numero_cc"].ToString(); clienteCartao.CC.Bandeira.ID = Convert.ToInt32(reader["id_bandeira"]); clienteCartao.CC.Bandeira.Nome = reader["nome_bandeira"].ToString(); clienteCartao.CC.CodigoSeguranca = reader["codigo_seguranca_cc"].ToString(); clienteCartao.CC.DataVencimento = Convert.ToDateTime(reader["dt_vencimento_cc"].ToString()); clienteCartaos.Add(clienteCartao); } connection.Close(); return(clienteCartaos); }