Beispiel #1
0
        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);
        }
Beispiel #3
0
        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);
        }