示例#1
0
        /// <summary>
        /// Gera backup em segundo plano
        /// </summary>
        /// <returns></returns>
        private Task <bool> GerarBackup()
        {
            StartProgress = true;
            BlackBox      = Visibility.Visible;

            return(Task <bool> .Factory.StartNew(() =>
            {
                string backupfolder = AppDomain.CurrentDomain.BaseDirectory + @"backup\";
                string uploadfolder = AppDomain.CurrentDomain.BaseDirectory + @"upload\";

                try
                {
                    //System.IO.Directory.Delete(_root, true);

                    //ZipUnzip.ProgressDelegate txt;

                    string file = @"" +
                                  DateTime.Now.Year.ToString("0000") +
                                  DateTime.Now.Month.ToString("00") +
                                  DateTime.Now.Day.ToString("00") +
                                  "_" +
                                  DateTime.Now.Hour.ToString("00") +
                                  DateTime.Now.Minute.ToString("00") +
                                  DateTime.Now.Second.ToString("00") +
                                  ".gz";

                    string backupfile = uploadfolder + file;

                    string db1file = ConnectionString + "SimDataBase1.mdb";
                    string dbNfile = ConnectionString + "SimDataBase1_N.mdb";
                    string db2file = ConnectionString + "SimDataBase2.mdb";
                    string db3file = ConnectionString + "SimDataBase3.mdb";
                    string db4file = ConnectionString + "SimDataBase4.mdb";

                    if (ConnectionString == @"|DataDirectory|\DataBase\")
                    {
                        db1file = AppDomain.CurrentDomain.BaseDirectory + @"DataBase\SimDataBase1.mdb";
                        dbNfile = AppDomain.CurrentDomain.BaseDirectory + @"DataBase\SimDataBase1_N.mdb";
                        db2file = AppDomain.CurrentDomain.BaseDirectory + @"DataBase\SimDataBase2.mdb";
                        db3file = AppDomain.CurrentDomain.BaseDirectory + @"DataBase\SimDataBase3.mdb";
                        db4file = AppDomain.CurrentDomain.BaseDirectory + @"DataBase\SimDataBase4.mdb";
                    }

                    if (!System.IO.Directory.Exists(backupfolder))
                    {
                        System.IO.Directory.CreateDirectory(backupfolder);
                    }

                    if (!System.IO.Directory.Exists(uploadfolder))
                    {
                        System.IO.Directory.CreateDirectory(uploadfolder);
                    }

                    System.IO.File.Copy(db1file, backupfolder + "SimDataBase1.mdb", true);
                    System.IO.File.Copy(dbNfile, backupfolder + "SimDataBase1_N.mdb", true);
                    System.IO.File.Copy(db2file, backupfolder + "SimDataBase2.mdb", true);
                    System.IO.File.Copy(db3file, backupfolder + "SimDataBase3.mdb", true);
                    System.IO.File.Copy(db4file, backupfolder + "SimDataBase4.mdb", true);

                    //MessageBox.Show(uploadfolder);

                    Compress.CompressDirectory(backupfolder, backupfile, null);

                    System.IO.File.Copy(backupfile, BackupPath + @"\" + file, true);

                    return true;
                }
                catch (Exception ex)
                {
                    return false;

                    throw new Exception(ex.Message);
                }
                finally
                {
                    System.IO.Directory.Delete(backupfolder, true);
                    System.IO.Directory.Delete(uploadfolder, true);
                    StartProgress = false;
                    BlackBox = Visibility.Collapsed;
                }
            }));
        }