本文整理汇总了C#中TvDatabase.TvBusinessLayer.GetRecordingTimes方法的典型用法代码示例。如果您正苦于以下问题:C# TvBusinessLayer.GetRecordingTimes方法的具体用法?C# TvBusinessLayer.GetRecordingTimes怎么用?C# TvBusinessLayer.GetRecordingTimes使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TvDatabase.TvBusinessLayer
的用法示例。
在下文中一共展示了TvBusinessLayer.GetRecordingTimes方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetNextWakeupTime
public DateTime GetNextWakeupTime(DateTime earliestWakeupTime)
{
TvBusinessLayer layer = new TvBusinessLayer();
Schedule recSchedule = null;
DateTime scheduleWakeupTime = DateTime.MaxValue;
DateTime nextWakeuptime = DateTime.MaxValue;
foreach (Schedule schedule in Schedule.ListAll())
{
if (schedule.Canceled != Schedule.MinSchedule) continue;
List<Schedule> schedules = layer.GetRecordingTimes(schedule);
if (schedules.Count > 0)
{
int i = 0;
// Take first occurrence of this schedule if not a canceled serie
while (i < schedules.Count)
{
recSchedule = schedules[i];
if (!recSchedule.IsSerieIsCanceled(recSchedule.StartTime))
break;
i++;
}
if (recSchedule != null)
{
scheduleWakeupTime = recSchedule.StartTime.AddMinutes(-recSchedule.PreRecordInterval);
}
}
if (recSchedule == null)
{
// manually determine schedule's wakeup time of no guide data is present
scheduleWakeupTime = GetWakeupTime(schedule);
}
if (scheduleWakeupTime < nextWakeuptime && scheduleWakeupTime >= earliestWakeupTime)
nextWakeuptime = scheduleWakeupTime;
}
return nextWakeuptime;
}
示例2: CreateProgram
//.........这里部分代码省略.........
item.Label2 = GetRecordingDateTime(conflict);
Channel channel = Channel.Retrieve(conflict.IdChannel);
if (channel != null && !string.IsNullOrEmpty(channel.DisplayName))
{
item.Label3 = channel.DisplayName;
}
else
{
item.Label3 = conflict.IdChannel.ToString();
}
item.TVTag = conflict;
dlg.AddConflictRecording(item);
}
dlg.ConflictingEpisodes = (scheduleType != (int)ScheduleRecordingType.Once);
dlg.DoModal(dialogId);
switch (dlg.SelectedLabel)
{
case 0: // Skip new Recording
{
Log.Debug("TVProgramInfo.CreateProgram: Skip new recording");
return;
}
case 1: // Don't record the already scheduled one(s)
{
Log.Debug("TVProgramInfo.CreateProgram: Skip old recording(s)");
foreach (Schedule conflict in conflicts)
{
Program prog =
new Program(conflict.IdChannel, conflict.StartTime, conflict.EndTime, conflict.ProgramName, "-", "-",
Program.ProgramState.None,
DateTime.MinValue, string.Empty, string.Empty, string.Empty, string.Empty, -1,
string.Empty, -1);
CancelProgram(prog, Schedule.Retrieve(conflict.IdSchedule), dialogId);
}
break;
}
case 2: // keep conflict
{
Log.Debug("TVProgramInfo.CreateProgram: Keep Conflict");
break;
}
case 3: // Skip for conflicting episodes
{
Log.Debug("TVProgramInfo.CreateProgram: Skip conflicting episode(s)");
skipConflictingEpisodes = true;
break;
}
default: // Skipping new Recording
{
Log.Debug("TVProgramInfo.CreateProgram: Default => Skip new recording");
return;
}
}
}
}
if (saveSchedule != null)
{
Log.Debug("TVProgramInfo.CreateProgram - UnCancleSerie at {0}", program.StartTime);
saveSchedule.UnCancelSerie(program.StartTime, program.IdChannel);
//saveSchedule.UnCancelSerie();
saveSchedule.Persist();
currentSchedule = saveSchedule;
}
else
{
Log.Debug("TVProgramInfo.CreateProgram - create schedule = {0}", schedule.ToString());
schedule.Persist();
if (currentSchedule == null || (currentSchedule.ScheduleType > 0 && schedule.ScheduleType != (int)ScheduleRecordingType.Once))
{
currentSchedule = schedule;
}
}
if (skipConflictingEpisodes)
{
List<Schedule> episodes = layer.GetRecordingTimes(schedule);
foreach (Schedule episode in episodes)
{
if (DateTime.Now > episode.EndTime)
{
continue;
}
if (episode.IsSerieIsCanceled(episode.StartTime, program.IdChannel))
{
continue;
}
foreach (Schedule conflict in conflicts)
{
if (episode.IsOverlapping(conflict))
{
Log.Debug("TVProgramInfo.CreateProgram - skip episode = {0}", episode.ToString());
CanceledSchedule canceledSchedule = new CanceledSchedule(schedule.IdSchedule, program.IdChannel, episode.StartTime);
canceledSchedule.Persist();
}
}
}
}
server.OnNewSchedule();
}