DNN Запланированное задание - дата последнего запуска - PullRequest
1 голос
/ 12 декабря 2011

Я создал запланированное задание DNN на своем веб-сайте, чтобы сгенерировать отчет обо всех пользователях, созданных с момента последнего запуска задания. Я хочу сделать это так, чтобы отчет можно было настроить на ежедневную, еженедельную, ежемесячную или любую другую продолжительность, просто изменив свойства запланированной задачи в DNN. Моя проблема заключается в том, что я не уверен, как получить «дату последнего запуска» задачи в моей DLL. Не ясно, если это возможно, и если это так, то какое свойство объекта ScheduleHistoryItem мне следует использовать. (DNN v5.6.2)

1 Ответ

2 голосов
/ 16 января 2012

Да, это возможно.После того, как вы извлекли требуемый список ScheduleHistoryItems с помощью функции SchedulingProvider.Instance (). GetScheduleHistory, вы можете отсортировать список по встроенному IComparer ScheduleHistorySortStartDate.Приведенная ниже функция возвращает последний запущенный ScheduledHistoryItem, который можно затем проверить в свойстве EndDate результата, чтобы определить, когда задача в последний раз была выполнена.

public DotNetNuke.Services.Scheduling.ScheduleHistoryItem GetLastScheduleHistoryItem(int ScheduleId = -1)
{
System.Collections.ArrayList scheduleHistory = DotNetNuke.Services.Scheduling.SchedulingProvider.Instance().GetScheduleHistory(ScheduleId);
if (scheduleHistory != null)
{
    scheduleHistory.Sort(new DotNetNuke.Services.Scheduling.ScheduleHistorySortStartDate()); //Sort the returned results by the Start Date

    if (scheduleHistory.Count > 0)
        return (DotNetNuke.Services.Scheduling.ScheduleHistoryItem)scheduleHistory[0];

}

return null;
}
...