protected void enviar_Click(object sender, EventArgs e) //Botão Login ADM COORD e PROF { lblMsgErro.Text = ""; // pegar valor dos textbox do login string user = txtLogin.Text.ToString(); //string senha = Funcoes.Criptografar(txtSenha.Text.ToString(), "SHA1"); ->>> não lê a senha correta do banco por algum motivo string senha = txtSenha.Text.ToString(); Perfil perfil = new Perfil(); //Verificar se os campos não estão vazios if (!String.IsNullOrEmpty(user) && !String.IsNullOrEmpty(senha)) { Professor prof = new Professor(); //instancia um novo professor prof = Professor.Validar(user, senha); //valida o professor e retorna para o obj professor if (prof != null) { Session["curso"] = ""; Session["semestre"] = ""; Session["disciplina"] = ""; Session["mae"] = ""; Session["Professor"] = prof; Session["matricula"] = prof.Matricula; Session["nome"] = prof.Nome; Session["menu"] = "coordenador"; //ADM Session["perfil"] = null; //ADM Session["login"] = user; // E-MAIL DO PROFESSOR Session["DataSetCalendarioAndProfessor"] = null; Session["DS_AllPIsbyCalendarioAtual"] = null; if (Funcoes_DB.ValidarAdmCoord(prof) == 2) { //Coordenador e professor //chama a página de escolher o perfil Response.Redirect("~/EscolherPerfil"); } else { Response.Redirect("~/EscolherDisciplina"); } } else { lblMsgErro.Text = "E-mail e/ou Senha incorretos."; } } else { // Campos estão vazios lblMsgErro.Text = "Preencha os campos."; } }
private void CarregaGrid() //Carrega grid com todos os PIs { DataSet ds = Funcoes_DB.SelectAllPIs(); //dataset que recebe todos os PIs através desse método int qtd = ds.Tables[0].Rows.Count; //conta quantas linhas retornou o dataset if (qtd > 0) //se a quantidade de linhas retornadas pelo dataset for > 0 vai preencher a grid { gdvProjetos.DataSource = ds.Tables[0].DefaultView; //fonte de dados do grid view recebe o ds criado anteriormente gdvProjetos.DataBind(); //preenche o grid view com os dados //percorre cada linha da grid que vai servir para substituir o nome dos status e curso para melhor visualização foreach (GridViewRow linha in gdvProjetos.Rows) { Label lblStatus = (Label)linha.FindControl("lblStatus"); //acha o label status da grid e liga a outro label Label lblSemestreCurso = (Label)linha.FindControl("lblSemestreCurso"); //acha o label semestre da grid e liga a outro label lblSemestreCurso.Text = lblSemestreCurso.Text + "º Semestre"; //acrescenta na label Curso ºSemestre bool valor = false; //variavel criada para verificar se o status do PI esta em andamento ou finalizado e habilitar o linkbutton if (lblStatus.Text == "False") //verifica se o status na grid está retornando false { lblStatus.Text = "Em andamento"; //se for, troca o "false" por "em andamento" } else //senao estiver retornando false, ou seja, true { lblStatus.Text = "Finalizado"; //se não for "false", troca por "finalizado" } if (lblStatus.Text == "Em andamento") // verifica se o status do PI está em andamento { valor = true; //se sim a variavel recebe true } if (valor == true) //se o PI estiver em andamento o botao habilitar pra edição fica invisivel { LinkButton botao = (LinkButton)linha.FindControl("lkbHabilitar"); //acha o label semestre da grid e liga a outro label botao.Visible = false; //deixa o botao invisivel } } } }
protected void btnEnviarM_Click(object sender, EventArgs e) //BOTÃO LOGIN MASTER { lblMsgErroM.Text = ""; // pegar valor dos textbox do login string user = txtLoginM.Text; //.ToString() não precisa, o .Text já converte pra String //string senha = Funcoes.Criptografar(txtSenha.Text.ToString(), "SHA1"); ->>> precisa trocar pelo SHA1 do Visual Studio para funcionar string senha = txtSenhaM.Text; //Verificar se os campos não estão vazios if (!String.IsNullOrEmpty(user) && !String.IsNullOrEmpty(senha)) { //verifica se é master e armazena um número que indica sucesso ou falha if (Funcoes_DB.ValidarAdmMaster(user, senha) == 1) { Perfil perfil = new Perfil("master"); //Administrador master Session["login"] = user; Session["menu"] = "master"; Session["matricula"] = perfil.Matricula; Session["nome"] = "Master"; Response.Redirect("~/Auditoria"); } else { lblMsgErroM.Text = "Login inválido"; } } else { lblMsgErroM.Text = "Os campos devem ser preenchidos!"; } }
protected static int c = 1; //instancia uma varíavel c para contar quantas vezes o usuário errou a senha protected void lkbConfirmaSenha_Click(object sender, EventArgs e) //EVENTO QUE VALIDA A SENHA DO MASTER AO CLICAR EM CONFIRMAR { string senha = txtSenha.Text; //pega o valor digita no campo senha e armazena na string senha if (!String.IsNullOrEmpty(senha)) //verifica se o campo de senha está fazio { if (Funcoes_DB.ValidaSenha(senha) == 1) //VERIFICA SE A FUNÇÃO DE VALIDAR RETORNOU 1 { c = 1; string caminhoArquivo = Session["caminhoArquivo"].ToString(); //PEGA O CAMINHO DO ARQUIVO DA VARÍAVEL DE SESSÃO string acao = Session["acaoBackup"].ToString(); //PEGA A AÇÃO DO USUÁRIO (DOWNLOAD OU BACKUP) E COLOCA NUMA STRING acao if (acao == "Download") //SE A ACAO FOR DOWNLOAD (SE CLICOU NO BOTÃO DOWNLOAD) { PostBackTrigger trigger = new PostBackTrigger(); //INSTANCIA UMA NOVA TRIGGER QUE RECARREGARÁ A PÁGINA (NECESSÁRIO PARA FAZER O DOWNLOAD) trigger.ControlID = timerDownload.UniqueID; //DEFINE QUE O CONTROLE timerDownload IRÁ FAZER O POSTABACK(RECARREGAMENTO) DA PÁGINA UpdatePanelModal.Triggers.Add(trigger); //ADICIONA A TRIGGER AO UPDATEPANEL DA MODAL lblMsgModal.Style.Add("color", "green"); //DEIXA O TEXTO DA MODAL VERDE lblMsgModal.Text = "Seu download iniciará em breve..."; //COLOCA A MENSAGEM DE INICANDO DOWNLAOD timerDownload.Enabled = true; /*HABILITA O CONTADOR DO DOWNLOAD: QUANDO O TEMPO ESGOTAR, SERÁ DISPARADO O MÉTODO timerDownload_Tick * ESSE MÉTODO ESTÁ QUASE NO FIM DA PÁGINA */ Session["esperandoDownload"] = "sim"; //DEFINE UMA VARÍAVEL DE SESSÃO PARA CONTROLAR SE UM DOWNLOAD É ESPERADO OU NÃO } else if (acao == "Restauracao") //SE A ACAO FOR RESTAURAÇÃO (SE CLICOU NO BOTÃO RESTAURAR) { string constring = ConfigurationManager.AppSettings["strConexao"]; //pega os dados do banco do Web.config string database = constring.Substring(9, 5); //corta a string dos dados do banco e pega somente o nome do banco (posicao 9, inter = 5 letras) string nome_arquivo = "bkpSec_" + database + "_" + DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss") + ".sql"; //faz o nome do arquivo baseado no nome do banco e data local string directory = (Request.PhysicalApplicationPath + "Backup"); //solicita o caminho da aplicação e coloca numa string juntando com Backup //COMEÇA O PROCESSO DE BACKUP DE SEGURANÇA ----------> string file = (directory + "\\" + nome_arquivo); using (MySqlConnection conn = new MySqlConnection(constring)) //instancia um novo objeto MySqlConnection usando os dados do banco contidos em constring { using (MySqlCommand cmd = new MySqlCommand()) //instancia um novo MySqlCommand { using (MySqlBackup mb = new MySqlBackup(cmd)) //instancia um novo MySqlBackup e usa o command de antes como parâmetro { cmd.Connection = conn; //define o comando Conection conn.Open(); //abre a conexão com o banco try //tenta { mb.ExportToFile(file); //CRIAR O BACKUP lblMsgModal.Style.Add("color", "green"); lblMsgModal.Text = "Backup de segurança efetuado com sucesso!"; } catch (Exception ex) //CASO NÃO CONSIGA CRIAR O BACKUP DE SEGURANÇA { UpdatePanelBkp.Update(); lblMsgModal.Style.Add("color", "#960d10"); lblMsgModal.Text = "Erro ao criar Backup de Segurança! Cancelando a Restauração;"; //MENSAGEM DE ERRO conn.Close(); System.Threading.Thread.Sleep(1000); Response.Redirect("~/Configuracoes"); //RECARREGA A PÁGINA } conn.Close(); //FECHA A CONEXÃO COM O BANCO, NÃO É NECESSÁRIO O DISPOSE(LIMPAR DA MEMÓRIA) POR USAR USING LÁ EM CIMA } } } CarregaGrid(); UpdatePanelBkp.Update(); string caminho = pegaDirBackup(); string[] arquivos = Funcoes.tratarArquivosBackup(caminho); //<---------------- TERMINA O BACKUP DE SEGURANÇA if (arquivos[0] == nome_arquivo.Replace(".sql", "")) // Verifica se o Backup foi realmente criado { lblMsgModal2.Text = "Backup de segurança efetuado com sucesso!"; if (Funcoes_DB.DropDatabase() == 0) { using (MySqlConnection conn = new MySqlConnection(constring)) //instancia um novo objeto MySqlConnection usando os dados do banco contidos em constring { using (MySqlCommand cmd = new MySqlCommand()) //instancia um novo MySqlCommand { using (MySqlBackup mb = new MySqlBackup(cmd)) //abre a conexão com o banco { cmd.Connection = conn; //define o comando Conection conn.Open(); //abre a conexão com o banco try //TENTA { mb.ImportFromFile(caminhoArquivo); //RESTAURA O SISTEMA USANDO O BACKUP CLICADO lblMsgModal2.Style.Add("color", "green"); lblMsgModal2.Text = "Sistema Restaurado com sucesso!"; } catch (Exception ex) { lblMsgModal2.Style.Add("color", "#960d10"); lblMsgModal2.Text = "Erro ao restaurar Backup"; } conn.Close(); //FECHA A CONEXÃO COM O BANCO, NÃO É NECESSÁRIO O DISPOSE(LIMPAR DA MEMÓRIA) POR USAR USING LÁ EM CIMA } } } } } } } else { if (c == 3) //SE HOUVE MAIS DE 3 TENTATIVAS DE CONFIRMAÇÃO DE SENHA { c = 1; //RESETA A VARÍAVEL DE CONTROLE Session.RemoveAll(); //REMOVE E LIMPA TODAS SESSÕES Response.Redirect("~/Login"); //REDIRECIONA PARA A PÁGINA DE LOGIN } else //CASO AINDA NÃO ERROU 3 VEZES { lblMsgModal.Style.Add("color", "#960d10"); lblMsgModal.Text = "Senha incorreta!"; c++; //AUMENTA O NÚMERO DE VEZES QUE A SENHA DIGITADA FOI INCORRETA EM 1 } } } else { lblMsgModal.Style.Add("color", "#960d10"); lblMsgModal.Text = "O campo senha deve ser preenchido!"; } }
public void CarregaPesquisaAvançada() //Carrega a grid com todos os PIs relacionados a pesquisa { string curso; string semestre_ano; string status; string pesquisa = txtPesquisa.Text; //cria uma variavel para receber o valor digitado no campo pesquisa if (ddlCurso.SelectedValue == "0") { curso = ""; } else { curso = ddlCurso.SelectedItem.ToString(); } if (ddlSemestreAno.SelectedValue == "0") { semestre_ano = ""; } else { semestre_ano = ddlSemestreAno.SelectedItem.ToString(); } if (ddlStatus.SelectedValue == "0") { status = ""; } else { if (ddlStatus.SelectedItem.ToString() == "Em andamento") { status = "0"; } else { status = "1"; } } if ((curso == "") && (semestre_ano == "") && (status == "") && (pesquisa == "")) { gdvProjetos.Visible = false; lblQtdRegistro.Text = "Preencha ao menos um campo para pesquisar!"; } else //se o campo pesquisa nao estiver vazio { DataSet dsPesquisa = Funcoes_DB.SelectFiltroPI(curso, semestre_ano, status, pesquisa); //dataset recebe o retorno do método que faz a pesquisa pelo filtro q o usuario digitou int qtd = dsPesquisa.Tables[0].Rows.Count; // conta quantas linhas o dataset retornou if (qtd > 0) // verifica se a quantidade de linhas form maior que 0 { gdvProjetos.Visible = true; //a grid fica visivel gdvProjetos.DataSource = dsPesquisa.Tables[0].DefaultView; //fonte de dados do grid view recebe o ds criado anteriormente gdvProjetos.DataBind(); //preenche o grid view com os dados lblQtdRegistro.Text = "Foram encontrados " + qtd + " registros"; //exibe mensagem de quantos registros foram retornados foreach (GridViewRow linha in gdvProjetos.Rows) //percorre cada linha da grid { Label lblStatus = (Label)linha.FindControl("lblStatus"); //acha o label de Nome e liga a outro label Label lblSemestreCurso = (Label)linha.FindControl("lblSemestreCurso"); //acha o label de Nome e liga a outro label lblSemestreCurso.Text = lblSemestreCurso.Text + "º Semestre"; //acrestenta na label Curso ºSemestre bool valor = false; //variavel criada para verificar se o status do PI esta em andamento ou finalizado e habilitar o linkbutton if (lblStatus.Text == "False") //verifica se o status na grid está retornando false { lblStatus.Text = "Em andamento"; //se for, troca o "false" por "em andamento" } else //senao estiver retornando false, ou seja, true { lblStatus.Text = "Finalizado"; //se não for "false", troca por "finalizado" } if (lblStatus.Text == "Em andamento") // verifica se o status do PI está em andamento { valor = true; //se sim a variavel recebe true } if (valor == true) //se o PI estiver em andamento o botao habilitar pra edição fica invisivel { LinkButton botao = (LinkButton)linha.FindControl("lkbHabilitar"); //acha o label semestre da grid e liga a outro label botao.Visible = false; //deixa o botao invisivel } } } else { gdvProjetos.Visible = false; //grid fica invisivel, pois o dataset nao retronou dados lblQtdRegistro.Text = "Nenhum Registro foi encontrado"; //informa ao usuario que nao foi encontrado nenhum registro } } }