internal void CallBackup(Propriedades _item) { if (!mAsyncWorker.IsBusy) { _telaProgressBar = new frmTelaAguardeProcessoProgressBar(); _telaProgressBar.Text = "Fazendo Backup..."; _telaProgressBar.SetDimensions(_telaProgressBar.Width, _telaProgressBar.Height); if (_item.MostrarJanelaNotificacao) { _telaProgressBar.Notify(); } else { _telaProgressBar.Hide(); } mAsyncWorker.RunWorkerAsync(_item); } else { mFilaBackup.Enqueue(_item); AtualizaFila(); } }
void ApagarBackupAntigos(Propriedades item) { if (item.UsarConfigApagar && item.QtdeDiasParaApagar > 0) { DateTime apartirDe = DateTime.Now.AddDays((item.QtdeDiasParaApagar * -1)); List <string> lstArquivosParaApagar = new List <string>(); foreach (string diretorio in item.Destinos) { DirectoryInfo directoryInfo = new DirectoryInfo(diretorio); if (directoryInfo != null) { FileInfo[] arquivos = directoryInfo.GetFiles(); foreach (FileInfo arquivo in arquivos) { if (arquivo.LastWriteTime.Date < apartirDe.Date) { lstArquivosParaApagar.Add(arquivo.FullName); } } } } if (lstArquivosParaApagar.Count > 0) { foreach (string arquivoParaApagar in lstArquivosParaApagar) { try { if (File.Exists(arquivoParaApagar)) { File.Delete(arquivoParaApagar); } } catch (Exception ex) { LogErro("LOGERRO.TXT", "ApagarArquivoAntigo", ex.Message); } } } } }
private void dgLista_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e) { LimpaCampos(); mPnlPrincipal.Enabled = false; if (dgLista.CurrentCell != null) { Propriedades propriedades = new Propriedades(); propriedades = MemoryProprierties.Where(r => r.Nome == dgLista.SelectedCells[0].Value.ToString()).FirstOrDefault(); txtIp.Text = propriedades.IpBanco; txtPorta.Text = propriedades.PortaBanco; txtUsuario.Text = propriedades.UsuarioBanco; try { txtSenha.Text = Cryptography.Decrypt(propriedades.SenhaBanco); } catch { } RetornaConexao(); foreach (string item in propriedades.ListaBancos) { foreach (Control c in mPnlDataBase.Controls) { if (c is CheckBox) { if (((CheckBox)c).Text == item) { ((CheckBox)c).Checked = true; } } } } txtDescricao.Text = propriedades.Nome; foreach (string item in propriedades.DiasDaSemana) { foreach (Control c in mPnlDiasSemana.Controls) { if (c is CheckBox) { if (((CheckBox)c).Text == item) { ((CheckBox)c).Checked = true; } } } } chkIntervalo.Checked = propriedades.UsarIntervaloHoras; txtIntervalo.Text = propriedades.ValorIntervaloHoras.ToString(); chkHoraFixa.Checked = propriedades.UsarHoraFixa; dtpHoraFixa.Value = DateTime.Parse(propriedades.ValorHoraFixa); chkApagar.Checked = propriedades.UsarConfigApagar; txtDiasApagar.Text = propriedades.QtdeDiasParaApagar.ToString(); chkCompactar.Checked = propriedades.Compactar; cmbCompactador.SelectedItem = propriedades.Compactador; int i = 0; foreach (string item in propriedades.Destinos) { dgDestinos.Rows.Add(item); if (!Directory.Exists(item)) { dgDestinos.Rows[i].DefaultCellStyle.BackColor = Color.LightCoral; dgDestinos.Rows[i].DefaultCellStyle.ForeColor = Color.White; } i++; } dgDestinos.ClearSelection(); chkMostrarNotificacao.Checked = propriedades.MostrarJanelaNotificacao; chkUtilizarHostFtp.Checked = propriedades.UtilizarHostFtp; txtHostFtp.Text = propriedades.HostFtp; txtUserFtp.Text = propriedades.UserFtp; try { txtPasswordFtp.Text = Cryptography.Decrypt(propriedades.PasswordFtp); } catch { } HabilitaBotoesPrincipais(Novo: true, Editar: true, Excluir: true, Backup: true); } }
private void btnSalvar_Click(object sender, EventArgs e) { try { if (!Validacao()) { return; } List <Propriedades> ListaPropriedades = new List <Propriedades>(); Propriedades propriedades = new Propriedades(); string caminhoArquivo = Application.StartupPath + @"\config.json"; if (!File.Exists(caminhoArquivo)) { File.Create(Application.StartupPath + @"\config.json").Close(); } dynamic conteudo = JsonUtil.ObterConteudo(caminhoArquivo); if (conteudo != null) { ListaPropriedades = JsonConvert.DeserializeObject <List <Propriedades> >(Convert.ToString(conteudo)); } foreach (DataGridViewRow r in dgLista.Rows) { if (r.Cells["nome"].Value.ToString() == txtDescricao.Text) { if (MetroMessageBox.Show(this, "Já existe uma configuração com essa descrição, deseja substituí-la!", "Atenção", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes) { foreach (Propriedades p in ListaPropriedades) { if (p.Nome == txtDescricao.Text) { ListaPropriedades.Remove(p); break; } } } } } propriedades = new Propriedades(); propriedades.Nome = txtDescricao.Text; propriedades.IpBanco = txtIp.Text; propriedades.PortaBanco = txtPorta.Text; propriedades.UsuarioBanco = txtUsuario.Text; propriedades.SenhaBanco = Cryptography.Encrypt(txtSenha.Text); //criptografa propriedades.ListaBancos = RetornaListaBancos(); propriedades.DiasDaSemana = RetornaDiasDaSemana(); propriedades.UsarIntervaloHoras = chkIntervalo.Checked; propriedades.ValorIntervaloHoras = !string.IsNullOrEmpty(txtIntervalo.Text) ? Convert.ToInt32(txtIntervalo.Text) : 0; propriedades.UsarHoraFixa = chkHoraFixa.Checked; propriedades.ValorHoraFixa = Convert.ToString(dtpHoraFixa.Value); propriedades.UsarConfigApagar = chkApagar.Checked; propriedades.QtdeDiasParaApagar = !string.IsNullOrEmpty(txtDiasApagar.Text) ? Convert.ToInt32(txtDiasApagar.Text) : 0; propriedades.Compactar = chkCompactar.Checked; propriedades.Compactador = cmbCompactador.Text; propriedades.Destinos = RetornaDestinos(); propriedades.MostrarJanelaNotificacao = chkMostrarNotificacao.Checked; propriedades.UtilizarHostFtp = chkUtilizarHostFtp.Checked; propriedades.HostFtp = txtHostFtp.Text; propriedades.UserFtp = txtUserFtp.Text; propriedades.PasswordFtp = Cryptography.Encrypt(txtPasswordFtp.Text); foreach (Propriedades item in ListaPropriedades) { if (propriedades.Nome == item.Nome) { ListaPropriedades.Remove(item); break; } } ListaPropriedades.Add(propriedades); JsonUtil.SalvarConteudo(caminhoArquivo, ListaPropriedades, true); ObterListaConfiguracoes(); HabilitaBotoesPrincipais(Novo: true); mPnlPrincipal.Enabled = false; dgLista.Enabled = true; LimpaCampos(); mConfig = true; } catch (Exception ex) { MetroMessageBox.Show(this, ex.Message); LogErro("LOGERRO.TXT", "btnSalvar_Click", ex.Message); } }
void FazerBackup(Propriedades item) { try { string nomeArquivo = "", constring = "", pathDestinoArquivo = "", nomeArquivoCompactado = ""; foreach (string b in item.ListaBancos) { constring = "server=" + item.IpBanco + ";port=" + item.PortaBanco + ";user id=" + item.UsuarioBanco + ";Password="******";database=" + b + ";Convert Zero Datetime=True;pooling=false; Allow User Variables=True;"; using (MySqlConnection conn = new MySqlConnection(constring)) { using (MySqlCommand cmd = new MySqlCommand()) { cmd.CommandTimeout = 7200; using (MySqlBackup mb = new MySqlBackup(cmd)) { cmd.Connection = conn; if (conn.State != ConnectionState.Open) { conn.Open(); } mb.ExportInfo.AddCreateDatabase = true; mb.ExportInfo.ExportTableStructure = true; mb.ExportInfo.ExportRows = true; mb.ExportInfo.ExportProcedures = true; mb.ExportInfo.ExportFunctions = true; mb.ExportInfo.ExportTriggers = true; mb.ExportInfo.ExportViews = true; mb.ExportProgressChanged += new MySqlBackup.exportProgressChange(mb_ExportProgressChange); if (item != null && item.Destinos.Length > 0) { string destino = item.Destinos[0]; if (!string.IsNullOrWhiteSpace(destino)) { MemoryStream ms = new MemoryStream(); nomeArquivo = item.Nome.RemoveCaracteresEspeciais().RemoveWhitespace() + "_" + b + "_" + DateTime.Now.ToString("yyyyMMdd_HHmmss") + ".sql"; mValorMSG = "Fazendo backup de " + b + " para \r\nPasta: " + destino + "\r\nArquivo: " + nomeArquivo; if (item.Compactar) { mb.ExportToMemoryStream(ms); } else { pathDestinoArquivo = destino + "\\" + nomeArquivo; mb.ExportToFile(pathDestinoArquivo); Log("log.txt", "FazerBackup", item.Nome, b, destino, "Backup efetuado com sucesso!"); } if (item.Compactar) { byte[] data = ms.ToArray(); using (MemoryStream stream = new MemoryStream(data)) { using (ZipFile zip = new ZipFile()) { zip.AddEntry(nomeArquivo, stream); nomeArquivoCompactado = Path.GetFileNameWithoutExtension(nomeArquivo) + "." + item.Compactador; pathDestinoArquivo = destino + "\\" + nomeArquivoCompactado; zip.Save(pathDestinoArquivo); Log("log.txt", "FazerBackup", item.Nome, b, destino, "Backup em " + item.Compactador + " efetuado com sucesso!"); } } File.Delete(destino + "\\" + nomeArquivo); } ConfigFtp host = new ConfigFtp() { UtilizarHostFtp = item.UtilizarHostFtp, FilePath = pathDestinoArquivo, MostrarJanelaNotificacao = item.MostrarJanelaNotificacao, NomeBanco = item.Nome }; mFilaEnviarFtp.Enqueue(host); foreach (string outroDestino in item.Destinos) { if (outroDestino == destino) { continue; } try { if (File.Exists(pathDestinoArquivo)) { File.Copy(pathDestinoArquivo, outroDestino + "\\" + nomeArquivoCompactado); } } catch { } } } } conn.Close(); } } } } try { ApagarBackupAntigos(item); } catch (Exception ex) { LogErro("LOGERRO.TXT", "ApagarBackupAntigo", ex.Message); } } catch (Exception ex) { LogErro("LOGERRO.TXT", "FazerBackup", ex.Message); } }
private void FazerBackup(Propriedades item) { try { string nomeArquivo = "", constring = ""; string pathDestinoArquivo = string.Empty; foreach (string b in item.ListaBancos) { constring = "server=" + item.IpBanco + ";port=" + item.PortaBanco + ";user id=" + item.UsuarioBanco + ";Password="******";database=" + b + ";Convert Zero Datetime=True;pooling=false; Allow User Variables=True;"; using (MySqlConnection conn = new MySqlConnection(constring)) { using (MySqlCommand cmd = new MySqlCommand()) { using (MySqlBackup mb = new MySqlBackup(cmd)) { cmd.Connection = conn; conn.Open(); mb.ExportProgressChanged += new MySqlBackup.exportProgressChange(mb_ExportProgressChange); foreach (string destino in item.Destinos) { MemoryStream ms = new MemoryStream(); nomeArquivo = item.Nome.RemoveCaracteresEspeciais().RemoveWhitespace() + "_" + b + "_" + DateTime.Now.ToString("ddMMyyyyHHmmssfff") + ".sql"; mValorMSG = "Fazendo backup de " + b + " para \r\nPasta: " + destino + "\r\nArquivo: " + nomeArquivo; if (item.Compactar) { mb.ExportToMemoryStream(ms); } else { pathDestinoArquivo = destino + "\\" + nomeArquivo; mb.ExportToFile(pathDestinoArquivo); Log("log.txt", "FazerBackup", item.Nome, b, destino, "Backup efetuado com sucesso!"); } if (item.Compactar) { byte[] data = ms.ToArray(); using (MemoryStream stream = new MemoryStream(data)) { using (ZipFile zip = new ZipFile()) { zip.AddEntry(nomeArquivo, stream); pathDestinoArquivo = destino + "\\" + Path.GetFileNameWithoutExtension(nomeArquivo) + "." + item.Compactador; zip.Save(pathDestinoArquivo); Log("log.txt", "FazerBackup", item.Nome, b, destino, "Backup em " + item.Compactador + " efetuado com sucesso!"); } } File.Delete(destino + "\\" + nomeArquivo); } ConfigFtp host = new ConfigFtp() { UtilizarHostFtp = item.UtilizarHostFtp, FilePath = pathDestinoArquivo, MostrarJanelaNotificacao = item.MostrarJanelaNotificacao, NomeBanco = item.Nome }; mFilaEnviarFtp.Enqueue(host); } conn.Close(); } } } } } catch (Exception ex) { LogErro("LOGERRO.TXT", "FazerBackup", ex.Message); } }
private void Timer2_Tick(object Sender, EventArgs e) { try { if (MemoryProprierties != null) { CultureInfo cultureInfo = new CultureInfo("pt-BR"); TimeSpan horaAtual = TimeSpan.Parse(DateTime.Now.ToString("HH:mm")); string dia = cultureInfo.DateTimeFormat.GetDayName(DateTime.Now.DayOfWeek); foreach (Propriedades item in MemoryProprierties) { if (item.UsarIntervaloHoras) { mItem = new Propriedades(); TimeSpan intervalo = TimeSpan.FromHours(Convert.ToInt32(item.ValorIntervaloHoras)); TimeSpan ultimoBackup = TimeSpan.Parse(dtUltimoBackup.ToString("HH:mm")); TimeSpan diferencaHoras = horaAtual - ultimoBackup; if ((diferencaHoras) == intervalo) { CallBackup(item); dtUltimoBackup = DateTime.Now; } } foreach (string d in item.DiasDaSemana) { if (d.ToLower() == dia) { if (DateTime.Parse(item.ValorHoraFixa).ToString("HH:mm") == DateTime.Now.ToString("HH:mm")) { CallBackup(item); } } } if (item.UsarConfigApagar) { int dias = item.QtdeDiasParaApagar; foreach (string d in item.Destinos) { if (Directory.Exists(d)) { string[] files = Directory.GetFiles(d); foreach (string s in files) { FileInfo file = new FileInfo(s); if (Path.GetExtension(file.ToString()) == ".sql" || Path.GetExtension(file.ToString()) == ".rar" || Path.GetExtension(file.ToString()) == ".zip") { if (file.CreationTime < DateTime.Now.AddDays(-dias)) { file.Delete(); } } } } } } } } } catch (Exception ex) { LogErro("LOGERRO.TXT", "Timer2_Tick", ex.Message); } }