public DateTime GetNextWakeupTime(DateTime earliestWakeupTime)
{
TvBusinessLayer layer = new TvBusinessLayer();
bool remoteSchedulerEnabled = (layer.GetSetting("xmlTvRemoteSchedulerEnabled", "false").Value == "true");
if (!remoteSchedulerEnabled)
{
return DateTime.MaxValue;
}
DateTime now = DateTime.Now;
DateTime defaultRemoteScheduleTime = new DateTime(now.Year, now.Month, now.Day, 0, 0, 0);
string remoteScheduleTimeStr =
layer.GetSetting("xmlTvRemoteScheduleTime", defaultRemoteScheduleTime.ToString()).Value;
DateTime remoteScheduleTime =
(DateTime)
(System.ComponentModel.TypeDescriptor.GetConverter(new DateTime(now.Year, now.Month, now.Day)).ConvertFrom(
remoteScheduleTimeStr));
if (remoteScheduleTime == DateTime.MinValue)
{
remoteScheduleTime = defaultRemoteScheduleTime;
}
if ((now < remoteScheduleTime) && (remoteScheduleTime > DateTime.MinValue))
{
remoteScheduleTime.AddDays(1);
}
Log.Debug(this._handlerName + ".GetNextWakeupTime {0}", remoteScheduleTime);
remoteScheduleTime.AddMinutes(-1); // resume 60sec before
return remoteScheduleTime;
}