private void DoSchedule(ScheduledAction Schedule) { // Correção de bug no Powershell. A data precisa estar no formato inglês. Collection <Command> cmd; if (Schedule.FullBackup) { mainLogger.WriteEntry("Executando agendamento de " + Schedule.Mailbox + " para " + Schedule.Target + " programado para " + Schedule.ScheduleTime + " com ID " + Schedule.Id + "\r\n" + " - Exportação de Mailbox completa."); cmd = ExchangeUtils.ExportMailbox(Schedule.Id, Schedule.Mailbox, "*", "*", Schedule.Target); } else { mainLogger.WriteEntry("Executando agendamento de " + Schedule.Mailbox + " para " + Schedule.Target + " programado para " + Schedule.ScheduleTime + " com ID " + Schedule.Id + "\r\n" + " - Exportação de Mailbox de (" + DateTime.Today.AddDays(-Schedule.LastDays).ToShortDateString() + ") até (" + DateTime.Today.ToShortDateString() + ")"); cmd = ExchangeUtils.ExportMailbox(Schedule.Id, Schedule.Mailbox, DateTime.Today.AddDays(-Schedule.LastDays).ToShortDateString(), DateTime.Today.ToShortDateString(), Schedule.Target); } PSBGWorker exportWorker = new PSBGWorker(ServerUser, Utils.DecryptPassword(EncServerPass), ServerIP, cmd, 0); exportWorker.Completed += CmdCompleted; exportWorker.InitTask(); }
private void ScheduleAction(object sender, System.Timers.ElapsedEventArgs e) { mainLogger.WriteEntry("Backup Service Tick. Checking Scheduled Actions"); Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US"); DateTime now = DateTime.Now; List <ScheduledAction> Schedules = dbman.GetScheduledActions(); mainLogger.WriteEntry("Scheduled Actions: " + Schedules.Count); // Clean Requests Collection <Command> cmd = ExchangeUtils.CleanDoneRequests(); PSBGWorker exportWorker = new PSBGWorker(ServerUser, Utils.DecryptPassword(EncServerPass), ServerIP, cmd, 0); exportWorker.InitTask(); // Do Schedules foreach (ScheduledAction Schedule in Schedules) { if (Schedule.ScheduleTime.isOnDate(now)) { DoSchedule(Schedule); } } }