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