/// <summary> /// /// </summary> /// <param name="container"></param> /// <param name="config"></param> public void InitiateConfiguration(Control container, string config) { gui = new MSSQLDatabaseBackupConfigGUI(MSSQLDatabaseBackupConfig.Load(config)); //gui.Dock = DockStyle.Fill; //gui.MinimumSize = new Size(500,500); container.Controls.Add(gui); }
/// <summary> /// /// </summary> /// <param name="config"></param> /// <param name="jobID"></param> /// <param name="target"></param> /// <returns></returns> public string Execute(string config, int jobID, IBackupTarget target) { MSSQLDatabaseBackupConfig conf = MSSQLDatabaseBackupConfig.Load(config); List <string> databases = conf.Databases; if (databases == null || databases.Count == 0) { databases = new List <string>(); List <string> tmp = MSSQLDatabaseBackupConfigGUI.GetDatabases(conf.Server, conf.Username, conf.Password); foreach (string s in tmp) { if (!s.EqualsAny(StringComparison.OrdinalIgnoreCase, "master", "model", "msdb", "tempdb")) { databases.Add(s); } } } bool remoteCleanupOK = true; string outputDir = conf.LocalTempDirectory; string remoteDir = conf.RemoteTempDir; if (conf.IsLocalServer) { remoteDir = outputDir; outputDir = null; } foreach (string db in databases) { BackupResult res; using (SQLLocalBackup lb = new SQLLocalBackup(conf.Server, conf.Username, conf.Password, db)) { res = lb.DoLocalBackup(remoteDir, outputDir, conf.AddDateToFilename); if (!res.CleanupOK) { remoteCleanupOK = false; } } if (conf.CompressFiles) { res.OutputFilename = ZipFile(res.OutputFilename); } target.Store(new FileInfo(res.OutputFilename), ""); //if( conf.SaveAs == SaveAsTypes.FTP ) { // FTPFile( res.OutputFilename, conf ); // try { // File.Delete( res.OutputFilename ); // } catch { // } //} } if (!remoteCleanupOK) { return(@"{0} was backed up. Temporary files on the remote server was not deleted. Enable procedure xp_cmdshell to perform this".FillBlanks(databases.ToString(", "))); } return("{0} was backuped.".FillBlanks(databases.ToString(", "))); }