Example #1
0
        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();
        }
Example #2
0
        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);
                }
            }
        }