private static T FindItem <T>(int tenantId) where T : BackupProgressItemBase { lock (tasks.SynchRoot) { return(tasks.GetItems().OfType <T>().FirstOrDefault(i => i.TenantId == tenantId)); } }
public BackupProgress GetBackupProgress(int tenantId) { lock (ProgressQueue.SynchRoot) { return(ToBackupProgress(ProgressQueue.GetItems().OfType <BackupProgressItem>().FirstOrDefault(t => t.TenantId == tenantId))); } }
public static void Cancel() { lock (_syncObj) { var findedItem = _exportQueue.GetItems().Where(elem => (int) elem.Id == TenantProvider.CurrentTenantID); if (findedItem.Any()) _exportQueue.Remove(findedItem.ElementAt(0)); } }
public void ResetRestoreError(int tenantId) { lock (ProgressQueue.SynchRoot) { var progress = ProgressQueue.GetItems().OfType <RestoreProgressItem>().FirstOrDefault(t => t.TenantId == tenantId); if (progress != null) { progress.Error = null; } } }
public void StartScheduledBackup(BackupSchedule schedule) { lock (ProgressQueue.SynchRoot) { var item = ProgressQueue.GetItems().OfType <BackupProgressItem>().FirstOrDefault(t => t.TenantId == schedule.TenantId); if (item != null && item.IsCompleted) { ProgressQueue.Remove(item); item = null; } if (item == null) { item = FactoryProgressItem.CreateBackupProgressItem(schedule, false, TempFolder, Limit, CurrentRegion, ConfigPaths); ProgressQueue.Add(item); } } }
public static void Cancel() { lock (_syncObj) { var findedItem = _mailQueue.GetItems().Where(elem => (int)elem.Id == TenantProvider.CurrentTenantID); if (findedItem.Any()) { _mailQueue.Remove(findedItem.ElementAt(0)); MailSenderDataCache.ResetAll(); } else { MailSenderDataCache.SetCancelFlag(); } } }
public BackupProgress StartRestore(StartRestoreRequest request) { lock (ProgressQueue.SynchRoot) { var item = ProgressQueue.GetItems().OfType <RestoreProgressItem>().FirstOrDefault(t => t.TenantId == request.TenantId); if (item != null && item.IsCompleted) { ProgressQueue.Remove(item); item = null; } if (item == null) { item = FactoryProgressItem.CreateRestoreProgressItem(request, TempFolder, UpgradesPath, CurrentRegion, ConfigPaths); ProgressQueue.Add(item); } return(ToBackupProgress(item)); } }
public BackupProgress StartTransfer(int tenantId, string targetRegion, bool transferMail, bool notify) { lock (ProgressQueue.SynchRoot) { var item = ProgressQueue.GetItems().OfType <TransferProgressItem>().FirstOrDefault(t => t.TenantId == tenantId); if (item != null && item.IsCompleted) { ProgressQueue.Remove(item); item = null; } if (item == null) { item = FactoryProgressItem.CreateTransferProgressItem(targetRegion, transferMail, tenantId, TempFolder, Limit, notify, CurrentRegion, ConfigPaths); ProgressQueue.Add(item); } return(ToBackupProgress(item)); } }
public BackupProgress StartBackup(StartBackupRequest request) { lock (ProgressQueue.SynchRoot) { var item = ProgressQueue.GetItems().OfType <BackupProgressItem>().FirstOrDefault(t => t.TenantId == request.TenantId); if (item != null && item.IsCompleted) { ProgressQueue.Remove(item); item = null; } if (item == null) { item = FactoryProgressItem.CreateBackupProgressItem(request, false, TempFolder, Limit, CurrentRegion, ConfigPaths); ProgressQueue.Add(item); } var progress = ToBackupProgress(item); PublishProgress(progress); return(progress); } }