private static void ExecuteBackup(DatabaseTargetConfigurationElement target) { try { BackupTask task = new BackupTask(target); task.BackupComplete += new EventHandler<DatabaseTargetEventArgs>(BackupComplete); task.BackupStart += new EventHandler<DatabaseTargetEventArgs>(BackupStart); task.CompressComplete += new EventHandler<DatabaseTargetEventArgs>(BackupCompressComplete); task.CompressStart += new EventHandler<DatabaseTargetEventArgs>(BackupCompressStart); task.TransferComplete += new EventHandler<DatabaseTargetEventArgs>(BackupTransferComplete); task.TransferProgress += new EventHandler<DatabaseTargetEventArgs>(BackupTransferProgress); task.TransferStart += new EventHandler<DatabaseTargetEventArgs>(BackupTransferStart); var result = task.Execute(); if (!result.Success) { WriteError(result.Exception); } } catch (Exception ex) { WriteError(ex); } }
/// <summary> /// Fires an event for this instance. /// </summary> /// <param name="handler">The event handler to fire.</param> /// <param name="schedule">The schedule to fire the event for.</param> /// <param name="target">The target to fire the event for, if applicable.</param> /// <param name="exception">The exeption to fire the event for, if applicable.</param> private void Fire(EventHandler<ScheduleEventArgs> handler, ScheduleConfigurationElement schedule, DatabaseTargetConfigurationElement target, Exception exception) { if (handler != null) { ScheduleEventArgs args = new ScheduleEventArgs() { ErrorException = exception, Name = schedule.Name, RepeatType = schedule.Repeat, StartDate = schedule.StartDate }; if (target != null) { args.OperationType = target is DatabaseRestoreTargetConfigurationElement ? ScheduleOperationType.Restore : ScheduleOperationType.Backup; args.TargetName = target.Name; } handler(this, args); } }
/// <summary> /// Initializes a new instance of the BackupTask class. /// </summary> /// <param name="target">The backup target to execute.</param> public BackupTask(DatabaseTargetConfigurationElement target) : base(SThreeQLConfiguration.Section.AwsTargets[target.AwsBucketName]) { this.Target = target; }