public frmUpdateInProgress(string productName) { _backgroundWorker = new BackgroundWorker(); _backgroundWorker.DoWork += BackgroundWorkerDoWork; _backgroundWorker.RunWorkerCompleted += BackgroundWorkerWorkCompleted; _progressBarUpdateHandler = UpdateProgressBar; InitializeComponent(); LoadLocales(productName); }
/// <summary> /// /// </summary> /// <param name="sourceDirectory">Directory to back up.</param> /// <param name="targetDirectory">Directory to back up to.</param> /// <param name="allowedFileExtensions">Optional (can be null or empty). List of file extensions to allow. If any set, only allowed extensions will be backed up. Extensions must not be preceeded by dots</param> /// <param name="blockedFileExtensions">Optional (can be null or empty). List of file extensions to ignore. Extensions must not be preceeded by dots</param> /// <param name="blockedFolders">Optional (can be null or empty). List of folders to ignore.</param> /// <param name="progressBarUpdateDelegate">Delegate to update UI progress bar.</param> /// <param name="writeMessageDelegate">Optional. Delegate to write messages to.</param> public BackupProcess( string sourceDirectory, string targetDirectory, List<string> allowedFileExtensions, List<string> blockedFileExtensions, List<string> blockedFolders, WriteMessageDelegate statusUpdateDelegate, ProgressBarUpdateDelegate progressBarUpdateDelegate, WriteMessageDelegate writeMessageDelegate ) { _sourceDirectory = sourceDirectory; _targetDirectory = targetDirectory; if (allowedFileExtensions != null) { _allowedFileExtensions = allowedFileExtensions; } if (blockedFileExtensions != null) { _blockedFileExtensions = blockedFileExtensions; } if (blockedFolders != null) { _blockedFolders = blockedFolders; } _writeMessageDelegate = writeMessageDelegate == null ? this.WriteSelf : writeMessageDelegate; _progressBarUpdateDelegate = progressBarUpdateDelegate == null ? this.ProgressUpdate : progressBarUpdateDelegate; _statusUpdateDelegate = statusUpdateDelegate == null ? this.WriteSelf : statusUpdateDelegate; this.DeleteOrphans = false; this.VersionFiles = false; }
/// <summary> /// /// </summary> /// <param name="jobList"></param> /// <param name="writeMessageDelegate">Leave null if not required.</param> public BackupSteerer( XmlDocument jobList, WriteMessageDelegate statuUpdateDelegate, ProgressBarUpdateDelegate progressBarUpdateDelegate, WriteMessageDelegate writeMessageDelegate, UiInvoke uiResetDelegate ) { _writeMessageDelegate = writeMessageDelegate; _uiResetDelegate = uiResetDelegate; XmlNodeList jobs = jobList.DocumentElement.SelectNodes("process"); foreach (XmlNode job in jobs) { List<string> allowedFileExtensions = new List<string>(); List<string> blockedFileExtensions = new List<string>(); List<string> blockedfolders = new List<string>(); // get allowed/blocked types XmlNodeList types = job.SelectNodes("allowList/type"); foreach (XmlNode t in types) { string s = t.InnerText.ToLower(); while (s.StartsWith(".")) s = s.Substring(1, s.Length - 1); allowedFileExtensions.Add(s); } types = job.SelectNodes("blockList/type"); foreach (XmlNode t in types) { string s = t.InnerText.ToLower(); while (s.StartsWith(".")) s = s.Substring(1, s.Length - 1); blockedFileExtensions.Add(s); } // get blocked folders XmlNodeList folders = job.SelectNodes("blockedFolders/blockedFolder"); foreach (XmlNode f in folders) { string s = f.InnerText.ToLower(); blockedfolders.Add(s); } BackupProcess p = new BackupProcess( job.Attributes["sourceDirectory"].Value, job.Attributes["targetDirectory"].Value, allowedFileExtensions, blockedFileExtensions, blockedfolders, statuUpdateDelegate, progressBarUpdateDelegate, writeMessageDelegate); if (job.Attributes["versionFiles"] != null) p.VersionFiles = Boolean.Parse(job.Attributes["versionFiles"].Value); if (job.Attributes["deleteOrphans"] != null) p.DeleteOrphans = Boolean.Parse(job.Attributes["deleteOrphans"].Value); _jobs.Add(p); } }