public string Run() { try { logger.Info("Scheduled backup started"); var manager = new BackupManager(_unitOfWork); var currentDate = DateTime.UtcNow.Date; var users = _unitOfWork.UserRepository.GetAll().Where( x => x.BackupPeriod != (int)ScheduleEnum.None && x.NextBackupDate != null && currentDate.Year == x.NextBackupDate.Value.Year && currentDate.Month == x.NextBackupDate.Value.Month && currentDate.Day == x.NextBackupDate.Value.Day ).ToList().Where(x => ScheduleHelper.IsCurrentDateTime((DateTime)x.NextBackupDate, _timespan)).ToList(); foreach (var user in users) { if (manager.BackupData(user)) { user.LastBackupDate = user.NextBackupDate; } user.NextBackupDate = ScheduleHelper.GetNextDate((DateTime)user.NextBackupDate, (ScheduleEnum)user.BackupPeriod, (DayOfWeek?)user.DayOfWeek, user.DayOfMonth); _unitOfWork.Commit(); } return "Success"; } catch (Exception e) { return e.Message; } }
public string Test() { try { logger.Info("Test Scheduled backup started"); var manager = new BackupManager(_unitOfWork); var users = _unitOfWork.UserRepository.GetAll().Where( x => x.BackupPeriod != (int)ScheduleEnum.None).ToList(); foreach (var user in users) { if (manager.BackupData(user)) { user.LastBackupDate = user.NextBackupDate; } user.NextBackupDate = ScheduleHelper.GetNextDate((DateTime)user.NextBackupDate, (ScheduleEnum)user.BackupPeriod, (DayOfWeek?)user.DayOfWeek, user.DayOfMonth); _unitOfWork.Commit(); } return "Success"; } catch (Exception e) { return e.Message; } }
public void Start(Guid userId) { var manager = new BackupManager(_unitOfWork); manager.Progress += (sender, args) => { Clients.Client(Context.ConnectionId).progress(args.Messsage); }; manager.BackupComplete += (sender, args) => { Clients.Client(Context.ConnectionId).backupComplete(args.Messsage); }; manager.AccountStart += (sender, args) => { Clients.Client(Context.ConnectionId).accountStart(args.Messsage); }; manager.AccountComplete += (sender, args) => { Clients.Client(Context.ConnectionId).accountComplete(args.Messsage); }; manager.ShowError += (sender, args) => { Clients.Client(Context.ConnectionId).showError(args.Messsage); }; Task.Factory.StartNew((x) => manager.BackupData(userId), null); }