protected override void RunInternal() { var config = BackupConfigurationSection.GetSection(); var pathToCurrentWebConfig = FileUtility.GetRootedPath(config.WebConfigs.GetCurrentConfig()); var pathToTargetWebConfig = FileUtility.GetRootedPath(config.WebConfigs.GetPathForRegion(targetRegion)); var tempFolderPath = config.TempFolder; if (!Directory.Exists(tempFolderPath)) { Directory.CreateDirectory(tempFolderPath); } try { NotifyHelper.SendAboutTransferStart(TenantId, targetRegion, NotifyOnlyOwner); var transferTask = new TransferPortalTask(CoreContext.TenantManager.GetTenant(TenantId), pathToCurrentWebConfig, pathToTargetWebConfig) { BackupDirectory = FileUtility.GetRootedPath(config.TempFolder) }; if (!TransferMail) { transferTask.IgnoreModule(ModuleName.Mail); } transferTask.ProgressChanged += (sender, args) => Progress = args.Progress; transferTask.Message += (sender, args) => { if (args.Reason == MessageReason.Info && Log != null) { Log.Debug(args.Message); } else if (args.Reason == MessageReason.Warning && Log != null) { Log.Warn(args.Message); } }; transferTask.Run(); NotifyHelper.SendAboutTransferComplete(TenantId, targetRegion, GetPortalAddress(pathToTargetWebConfig), NotifyOnlyOwner); } catch { NotifyHelper.SendAboutTransferError(TenantId, targetRegion, GetPortalAddress(pathToCurrentWebConfig), NotifyOnlyOwner); throw; } }
public void RunJob() { try { NotifyHelper.SendAboutTransferStart(_tenant.TenantId, _targetRegion, _notifyAllUsers); string targetWebConfigPath = ToAbsolute(BackupConfigurationSection.GetSection().RegionConfigs.GetConfig(_targetRegion).Path); var transferTask = new TransferPortalTask(_tenant, currentWebConfigPath, targetWebConfigPath) { BackupDirectory = tmpfolder }; if (!_backupMail) { transferTask.IgnoreModule(ModuleName.Mail); } transferTask.ProgressChanged += (sender, args) => Percentage = args.Progress; transferTask.Message += (sender, args) => { if (args.Reason == MessageReason.Info) { log.Debug(args.Message); } else if (args.Reason == MessageReason.Warning) { log.Warn(args.Message); } }; transferTask.Run(); NotifyHelper.SendAboutTransferComplete(_tenant.TenantId, _targetRegion, GetPortalAddress(targetWebConfigPath), _notifyAllUsers); } catch (Exception error) { log.Error(error); NotifyHelper.SendAboutTransferError(_tenant.TenantId, _targetRegion, GetPortalAddress(currentWebConfigPath), error.Message, _notifyAllUsers); Error = error; } finally { IsCompleted = true; } }
public void TransferPortalTest() { var transferTask = new TransferPortalTask( CoreContext.TenantManager.GetTenant(0), @"..\..\Tests\Configs\localhost\Web.config", @"..\..\Tests\Configs\restore\Web.config"); transferTask.IgnoreModule(ModuleName.Mail); transferTask.BlockOldPortalAfterStart = false; transferTask.DeleteOldPortalAfterCompletion = false; transferTask.ProcessStorage = false; transferTask.DeleteBackupFileAfterCompletion = false; transferTask.Message += (sender, args) => Console.WriteLine("{0}: {1}", args.Reason.ToString("g"), args.Message); transferTask.ProgressChanged += (sender, args) => Console.WriteLine("progress: {0}%", args.Progress); transferTask.Run(); }