コード例 #1
0
 public frmUpdateInProgress(string productName)
 {
     _backgroundWorker                     = new BackgroundWorker();
     _backgroundWorker.DoWork             += BackgroundWorkerDoWork;
     _backgroundWorker.RunWorkerCompleted += BackgroundWorkerWorkCompleted;
     _progressBarUpdateHandler             = UpdateProgressBar;
     InitializeComponent();
     LoadLocales(productName);
 }
コード例 #2
0
        /// <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;
        }
コード例 #3
0
        /// <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);
            }
        }