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;
            }
        }
Esempio n. 3
0
        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);
        }