public string GetGroupDisplayText(RecordingGroup recordingGroup, string recordingsText, string unknownText) { switch (recordingGroup.RecordingGroupMode) { case RecordingGroupMode.GroupByProgramTitle: return(String.Format("{0} - {2:g} ({1} {3})", recordingGroup.ProgramTitle, recordingGroup.RecordingsCount, recordingGroup.LatestProgramStartTime, recordingsText)); case RecordingGroupMode.GroupByChannel: return(String.Format("{0} - {2:g} ({1} {3})", recordingGroup.ChannelDisplayName, recordingGroup.RecordingsCount, recordingGroup.LatestProgramStartTime, recordingsText)); case RecordingGroupMode.GroupBySchedule: return(String.Format("{0} - {2:g} ({1} {3})", recordingGroup.ScheduleName, recordingGroup.RecordingsCount, recordingGroup.LatestProgramStartTime, recordingsText)); case RecordingGroupMode.GroupByRecordingDay: return(String.Format("{0:D} ({1} {2})", recordingGroup.LatestProgramStartTime, recordingGroup.RecordingsCount, recordingsText)); case RecordingGroupMode.GroupByCategory: return(String.Format("{0} - {2:g} ({1} {3})", String.IsNullOrEmpty(recordingGroup.Category) ? unknownText : recordingGroup.Category, recordingGroup.RecordingsCount, recordingGroup.LatestProgramStartTime, recordingsText)); } return("?"); }
private static List <RecordingSummary> GetRecordingsInGroup(RecordingGroup group, BackgroundWorkerArgs args) { List <RecordingSummary> recordings = null; if (group.SingleRecording != null) { recordings = new List <RecordingSummary>() { group.SingleRecording }; } else { switch (group.RecordingGroupMode) { case RecordingGroupMode.GroupBySchedule: recordings = Proxies.ControlService.GetRecordingsForSchedule(group.ScheduleId, args.IncludeNonExisting).Result; break; case RecordingGroupMode.GroupByChannel: recordings = Proxies.ControlService.GetRecordingsOnChannel(group.ChannelId, args.IncludeNonExisting).Result; break; case RecordingGroupMode.GroupByProgramTitle: recordings = Proxies.ControlService.GetRecordingsForProgramTitle(args.ChannelType, group.ProgramTitle, args.IncludeNonExisting).Result; break; case RecordingGroupMode.GroupByCategory: recordings = Proxies.ControlService.GetRecordingsForCategory(args.ChannelType, group.Category, args.IncludeNonExisting).Result; break; } } return(recordings); }
private static void RefreshGroupNodeImage(TreeNode groupNode) { RecordingGroup recordingGroup = groupNode.Tag as RecordingGroup; if (groupNode.IsExpanded) { groupNode.ImageIndex = recordingGroup.IsRecording ? TreeImageIndex.RecordingFolderInProgressOpen : TreeImageIndex.RecordingFolderOpen; } else { groupNode.ImageIndex = recordingGroup.IsRecording ? TreeImageIndex.RecordingFolderInProgress : TreeImageIndex.RecordingFolder; } groupNode.SelectedImageIndex = groupNode.ImageIndex; }
private string GetGroupDisplayText(object groupObject) { RecordingGroup recordingGroup = groupObject as RecordingGroup; switch (recordingGroup.RecordingGroupMode) { case RecordingGroupMode.GroupBySchedule: return(String.Format("{0} - {2} ({1} recordings)", recordingGroup.ScheduleName, recordingGroup.RecordingsCount, FormatDateWithTime(recordingGroup.LatestProgramStartTime, true))); case RecordingGroupMode.GroupByChannel: return(String.Format("{0} - {2} ({1} recordings)", recordingGroup.ChannelDisplayName, recordingGroup.RecordingsCount, FormatDateWithTime(recordingGroup.LatestProgramStartTime, true))); case RecordingGroupMode.GroupByProgramTitle: return(String.Format("{0} - {2} ({1} recordings)", recordingGroup.ProgramTitle, recordingGroup.RecordingsCount, FormatDateWithTime(recordingGroup.LatestProgramStartTime, true))); case RecordingGroupMode.GroupByCategory: return(String.Format("{0} - {2} ({1} recordings)", String.IsNullOrEmpty(recordingGroup.Category) ? "(none)" : recordingGroup.Category, recordingGroup.RecordingsCount, FormatDateWithTime(recordingGroup.LatestProgramStartTime, true))); } return(String.Empty); }
internal static void AddRecordingNodes(TreeNodeCollection nodes, object groupObject, bool includeNonExisting) { List <RecordingSummary> recordings = null; bool addChannelName = false; RecordingGroup recordingGroup = groupObject as RecordingGroup; switch (recordingGroup.RecordingGroupMode) { case RecordingGroupMode.GroupBySchedule: recordings = Proxies.ControlService.GetRecordingsForSchedule(recordingGroup.ScheduleId, includeNonExisting).Result; addChannelName = true; break; case RecordingGroupMode.GroupByChannel: recordings = Proxies.ControlService.GetRecordingsOnChannel(recordingGroup.ChannelId, includeNonExisting).Result; break; case RecordingGroupMode.GroupByProgramTitle: recordings = Proxies.ControlService.GetRecordingsForProgramTitle(recordingGroup.ChannelType, recordingGroup.ProgramTitle, includeNonExisting).Result; addChannelName = true; break; case RecordingGroupMode.GroupByCategory: recordings = Proxies.ControlService.GetRecordingsForCategory(recordingGroup.ChannelType, recordingGroup.Category, includeNonExisting).Result; addChannelName = true; break; } if (recordings != null) { nodes.Clear(); foreach (RecordingSummary recording in recordings) { AddRecordingNode(nodes, recording, addChannelName); } } }
private bool RemoveRecordingNode(TreeNodeCollection nodes, RecordingSummary recording) { foreach (TreeNode node in nodes) { if (node.Nodes.Count > 0) { if (RemoveRecordingNode(node.Nodes, recording)) { return(true); } } if (node.Tag == recording) { TreeNode parentNode = node.Parent; node.Remove(); if (parentNode != null) { if (parentNode.Nodes.Count == 0) { parentNode.Remove(); } else { RecordingGroup group = parentNode.Tag as RecordingGroup; if (group != null) { group.RecordingsCount--; parentNode.Text = GetGroupDisplayText(group); } } } return(true); } } return(false); }