Beispiel #1
0
 /// <summary>
 /// Creates a new <see cref="DatabaseTargetEventArgs"/> instance.
 /// </summary>
 /// <param name="task">The <see cref="BackupTask"/> to create the arguments with.</param>
 /// <param name="info">The <see cref="TransferInfo"/> to create the arguments with, if applicable.</param>
 /// <returns>The created event arguments.</returns>
 public static DatabaseTargetEventArgs CreateEventArgs(BackupTask task, TransferInfo info)
 {
     return(new DatabaseTargetEventArgs()
     {
         CatalogName = task.Target.CatalogName,
         Name = task.Target.Name,
         Transfer = info
     });
 }
Beispiel #2
0
        private void ExecuteSchedule(object schd)
        {
            ScheduleConfigurationElement schedule = (ScheduleConfigurationElement)schd;
            this.Fire(this.ScheduleStart, schedule, null, null);

            foreach (ScheduleTargetConfigurationElement target in schedule.BackupTargets)
            {
                DatabaseTargetConfigurationElement config = null;

                try
                {
                    config = SThreeQLConfiguration.Section.BackupTargets[target.Name];

                    BackupTask task = new BackupTask(config);
                    task.BackupComplete += new EventHandler<DatabaseTargetEventArgs>(this.OnBackupComplete);
                    task.BackupStart += new EventHandler<DatabaseTargetEventArgs>(this.OnBackupStart);
                    task.CompressComplete += new EventHandler<DatabaseTargetEventArgs>(this.OnBackupCompressComplete);
                    task.CompressStart += new EventHandler<DatabaseTargetEventArgs>(this.OnBackupCompressStart);
                    task.TransferComplete += new EventHandler<DatabaseTargetEventArgs>(this.OnBackupTransferComplete);
                    task.TransferProgress += new EventHandler<DatabaseTargetEventArgs>(this.OnBackupTransferProgress);
                    task.TransferStart += new EventHandler<DatabaseTargetEventArgs>(this.OnTransferStart);

                    task.Execute();
                }
                catch (Exception ex)
                {
                    this.Fire(this.ScheduleError, schedule, config, ex);
                }
            }

            foreach (ScheduleTargetConfigurationElement target in schedule.RestoreTargets)
            {
                DatabaseRestoreTargetConfigurationElement config = null;

                try
                {
                    config = SThreeQLConfiguration.Section.RestoreTargets[target.Name];

                    RestoreTask task = new RestoreTask(config);
                    task.DecompressComplete += new EventHandler<RestoreDatabaseTargetEventArgs>(this.OnRestoreDecompressComplete);
                    task.DecompressStart += new EventHandler<RestoreDatabaseTargetEventArgs>(this.OnRestoreDecompressStart);
                    task.RestoreComplete += new EventHandler<RestoreDatabaseTargetEventArgs>(this.OnRestoreComplete);
                    task.RestoreStart += new EventHandler<RestoreDatabaseTargetEventArgs>(this.OnRestoreStart);
                    task.TransferComplete += new EventHandler<RestoreDatabaseTargetEventArgs>(this.OnRestoreTransferComplete);
                    task.TransferProgress += new EventHandler<RestoreDatabaseTargetEventArgs>(this.OnRestoreTransferProgress);
                    task.TransferStart += new EventHandler<RestoreDatabaseTargetEventArgs>(this.OnRestoreTransferStart);

                    task.Execute();
                }
                catch (Exception ex)
                {
                    this.Fire(this.ScheduleError, schedule, config, ex);
                }
            }

            this.Fire(this.ScheduleComplete, schedule, null, null);

            lock (this)
            {
                this.inProgress.Remove(schedule.Name);
                this.pending.Add(schedule.Name, GetNextExecuteDate(schedule));
            }
        }
Beispiel #3
0
        private void ExecuteSchedule(object schd)
        {
            ScheduleConfigurationElement schedule = (ScheduleConfigurationElement)schd;

            this.Fire(this.ScheduleStart, schedule, null, null);

            foreach (ScheduleTargetConfigurationElement target in schedule.BackupTargets)
            {
                DatabaseTargetConfigurationElement config = null;

                try
                {
                    config = SThreeQLConfiguration.Section.BackupTargets[target.Name];

                    BackupTask task = new BackupTask(config);
                    task.BackupComplete   += new EventHandler <DatabaseTargetEventArgs>(this.OnBackupComplete);
                    task.BackupStart      += new EventHandler <DatabaseTargetEventArgs>(this.OnBackupStart);
                    task.CompressComplete += new EventHandler <DatabaseTargetEventArgs>(this.OnBackupCompressComplete);
                    task.CompressStart    += new EventHandler <DatabaseTargetEventArgs>(this.OnBackupCompressStart);
                    task.TransferComplete += new EventHandler <DatabaseTargetEventArgs>(this.OnBackupTransferComplete);
                    task.TransferProgress += new EventHandler <DatabaseTargetEventArgs>(this.OnBackupTransferProgress);
                    task.TransferStart    += new EventHandler <DatabaseTargetEventArgs>(this.OnTransferStart);

                    task.Execute();
                }
                catch (Exception ex)
                {
                    this.Fire(this.ScheduleError, schedule, config, ex);
                }
            }

            foreach (ScheduleTargetConfigurationElement target in schedule.RestoreTargets)
            {
                DatabaseRestoreTargetConfigurationElement config = null;

                try
                {
                    config = SThreeQLConfiguration.Section.RestoreTargets[target.Name];

                    RestoreTask task = new RestoreTask(config);
                    task.DecompressComplete += new EventHandler <RestoreDatabaseTargetEventArgs>(this.OnRestoreDecompressComplete);
                    task.DecompressStart    += new EventHandler <RestoreDatabaseTargetEventArgs>(this.OnRestoreDecompressStart);
                    task.RestoreComplete    += new EventHandler <RestoreDatabaseTargetEventArgs>(this.OnRestoreComplete);
                    task.RestoreStart       += new EventHandler <RestoreDatabaseTargetEventArgs>(this.OnRestoreStart);
                    task.TransferComplete   += new EventHandler <RestoreDatabaseTargetEventArgs>(this.OnRestoreTransferComplete);
                    task.TransferProgress   += new EventHandler <RestoreDatabaseTargetEventArgs>(this.OnRestoreTransferProgress);
                    task.TransferStart      += new EventHandler <RestoreDatabaseTargetEventArgs>(this.OnRestoreTransferStart);

                    task.Execute();
                }
                catch (Exception ex)
                {
                    this.Fire(this.ScheduleError, schedule, config, ex);
                }
            }

            this.Fire(this.ScheduleComplete, schedule, null, null);

            lock (this)
            {
                this.inProgress.Remove(schedule.Name);
                this.pending.Add(schedule.Name, GetNextExecuteDate(schedule));
            }
        }
Beispiel #4
0
 /// <summary>
 /// Creates a new <see cref="DatabaseTargetEventArgs"/> instance.
 /// </summary>
 /// <param name="task">The <see cref="BackupTask"/> to create the arguments with.</param>
 /// <param name="info">The <see cref="TransferInfo"/> to create the arguments with, if applicable.</param>
 /// <returns>The created event arguments.</returns>
 public static DatabaseTargetEventArgs CreateEventArgs(BackupTask task, TransferInfo info)
 {
     return new DatabaseTargetEventArgs()
     {
         CatalogName = task.Target.CatalogName,
         Name = task.Target.Name,
         Transfer = info
     };
 }