public List <ClientesDTO> Consultar()
        {
            string script = @"SELECT * FROM tb_clientes";
            List <MySqlParameter> parms = new List <MySqlParameter>();

            Database        db     = new Database();
            MySqlDataReader reader = db.ExecuteSelectScript(script, parms);

            List <ClientesDTO> clientes = new List <ClientesDTO>();

            while (reader.Read())
            {
                ClientesDTO cliente = new ClientesDTO();
                cliente.id_Cliente        = reader.GetInt32("id_Cliente");
                cliente.nm_Nome           = reader.GetString("nm_Nome");
                cliente.ds_CPF            = reader.GetString("ds_CPF");
                cliente.ds_CEP            = reader.GetString("ds_CEP");
                cliente.ds_Logradouro     = reader.GetString("ds_Logradouro");
                cliente.ds_Bairro         = reader.GetString("ds_Bairro");
                cliente.ds_UF             = reader.GetString("ds_UF");
                cliente.ds_Complemento    = reader.GetString("ds_Complemento");
                cliente.ds_Situacao       = reader.GetBoolean("ds_Situacao");
                cliente.num_Telefone      = reader.GetString("num_Telefone");
                cliente.num_Celular       = reader.GetString("num_Celular");
                cliente.ds_Email          = reader.GetString("ds_Email");
                cliente.dt_Cadastro       = reader.GetDateTime("dt_Cadastro");
                cliente.fk_Cliente_Filial = reader.GetInt32("fk_Cliente_Filial");

                clientes.Add(cliente);
            }

            reader.Close();
            return(clientes);
        }
        public int CadastrarCliente(ClientesDTO dto)
        {
            string script = @"INSERT tb_clientes(nm_Nome, ds_CPF, ds_CEP, ds_Logradouro, ds_Bairro, ds_UF, ds_Complemento, ds_Situacao, num_Telefone, num_Celular, ds_Email, dt_Cadastro, fk_Cliente_Filial)
                                          VALUES(@nm_Nome, @ds_CPF, @ds_CEP, @ds_Logradouro, @ds_Bairro, @ds_UF, @ds_Complemento, @ds_Situacao, @num_Telefone, @num_Celular, @ds_Email, @dt_Cadastro, @fk_Cliente_Filial)";

            List <MySqlParameter> parms = new List <MySqlParameter>();

            parms.Add(new MySqlParameter("nm_Nome", dto.nm_Nome));
            parms.Add(new MySqlParameter("ds_CPF", dto.ds_CPF));
            parms.Add(new MySqlParameter("ds_CEP", dto.ds_CEP));
            parms.Add(new MySqlParameter("ds_Logradouro", dto.ds_Logradouro));
            parms.Add(new MySqlParameter("ds_Bairro", dto.ds_Bairro));
            parms.Add(new MySqlParameter("ds_UF", dto.ds_UF));
            parms.Add(new MySqlParameter("ds_Complemento", dto.ds_Complemento));
            parms.Add(new MySqlParameter("ds_Situacao", true));
            parms.Add(new MySqlParameter("num_Telefone", dto.num_Telefone));
            parms.Add(new MySqlParameter("num_Celular", dto.num_Celular));
            parms.Add(new MySqlParameter("ds_Email", dto.ds_Email));
            parms.Add(new MySqlParameter("dt_Cadastro", dto.dt_Cadastro));
            parms.Add(new MySqlParameter("fk_Cliente_Filial", Program.id_Filial));

            Database db = new Database();

            return(db.ExecuteInsertScriptWithPk(script, parms));
        }
        public int CadastrarCliente(ClientesDTO dto)
        {
            if (dto.ds_Bairro == string.Empty)
            {
                throw new ArgumentException("Bairro não pode estar vazio.");
            }

            if (dto.ds_Logradouro == string.Empty)
            {
                throw new ArgumentException("Logradouro não pode estar vazio.");
            }

            if (dto.ds_UF == string.Empty)
            {
                throw new ArgumentException("UF não pode estar vazio.");
            }

            if (dto.ds_CEP == string.Empty)
            {
                throw new ArgumentException("CEP não pode estar vazio.");
            }

            ValidarNumero regexNum = new ValidarNumero();
            ValidarTexto  regexTxt = new ValidarTexto();

            regexTxt.ValidarEmail(dto.ds_Email);
            regexTxt.ValidarNome(dto.nm_Nome);
            regexNum.ValidarTelefoneFixo(dto.num_Telefone);
            regexNum.ValidarTelefoneCelular(dto.num_Celular);

            CPF validar = new CPF();

            validar.ValidarCPF(dto.ds_CPF);

            DESCripto cripto = new DESCripto();

            dto.nm_Nome      = cripto.Criptografar(Program.chave, dto.nm_Nome);
            dto.ds_CPF       = cripto.Criptografar(Program.chave, dto.ds_CPF);
            dto.num_Celular  = cripto.Criptografar(Program.chave, dto.num_Celular);
            dto.num_Telefone = cripto.Criptografar(Program.chave, dto.num_Telefone);
            dto.ds_Email     = cripto.Criptografar(Program.chave, dto.ds_Email);

            ClientesDatabase db = new ClientesDatabase();
            int idCliente       = db.CadastrarCliente(dto);

            if (idCliente == 0)
            {
                throw new ArgumentException("O cliente não foi cadastrado com sucesso!");
            }

            return(idCliente);
        }
        public ClientesDTO ConsultarPorId(int idCliente)
        {
            ClientesDatabase db      = new ClientesDatabase();
            ClientesDTO      cliente = db.ConsultarPorId(idCliente);

            if (cliente.id_Cliente != 0)
            {
                DESCripto cripto = new DESCripto();
                cliente.nm_Nome      = cripto.Descriptografar(Program.chave, cliente.nm_Nome);
                cliente.ds_CPF       = cripto.Descriptografar(Program.chave, cliente.ds_CPF);
                cliente.num_Celular  = cripto.Descriptografar(Program.chave, cliente.num_Celular);
                cliente.num_Telefone = cripto.Descriptografar(Program.chave, cliente.num_Telefone);
                cliente.ds_Email     = cripto.Descriptografar(Program.chave, cliente.ds_Email);

                return(cliente);
            }
            else
            {
                return(cliente);
            }
        }
        public int AlterarCliente(ClientesDTO dto)
        {
            string script = @"UPDATE tb_clientes SET nm_Nome = @nm_Nome,
                                                      ds_CPF = @ds_CPF, 
                                                      ds_CEP = @ds_CEP, 
                                               ds_Logradouro = @ds_Logradouro, 
                                                   ds_Bairro = @ds_Bairro, 
                                                       ds_UF = @ds_UF, 
                                              ds_Complemento = @ds_Complemento, 
                                                 ds_Situacao = @ds_Situacao, 
                                                num_Telefone = @num_Telefone, 
                                                 num_Celular = @num_Celular, 
                                                    ds_Email = @ds_Email, 
                                                 dt_Cadastro = @dt_Cadastro

                                            WHERE id_Cliente = @id_Cliente";

            List <MySqlParameter> parms = new List <MySqlParameter>();

            parms.Add(new MySqlParameter("id_Cliente", dto.id_Cliente));
            parms.Add(new MySqlParameter("nm_Nome", dto.nm_Nome));
            parms.Add(new MySqlParameter("ds_CPF", dto.ds_CPF));
            parms.Add(new MySqlParameter("ds_CEP", dto.ds_CEP));
            parms.Add(new MySqlParameter("ds_Logradouro", dto.ds_Logradouro));
            parms.Add(new MySqlParameter("ds_Bairro", dto.ds_Bairro));
            parms.Add(new MySqlParameter("ds_UF", dto.ds_UF));
            parms.Add(new MySqlParameter("ds_Complemento", dto.ds_Complemento));
            parms.Add(new MySqlParameter("ds_Situacao", dto.ds_Situacao));
            parms.Add(new MySqlParameter("num_Telefone", dto.num_Telefone));
            parms.Add(new MySqlParameter("num_Celular", dto.num_Celular));
            parms.Add(new MySqlParameter("ds_Email", dto.ds_Email));
            parms.Add(new MySqlParameter("dt_Cadastro", dto.dt_Cadastro));

            Database db = new Database();

            return(db.ExecuteInsertScriptWithPk(script, parms));
        }