コード例 #1
0
        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("?");
        }
コード例 #2
0
ファイル: RecordingsPanel.cs プロジェクト: rob-opsi/ARGUS-TV
        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);
        }
コード例 #3
0
ファイル: RecordingsPanel.cs プロジェクト: rob-opsi/ARGUS-TV
        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;
        }
コード例 #4
0
ファイル: RecordingsPanel.cs プロジェクト: rob-opsi/ARGUS-TV
        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);
        }
コード例 #5
0
ファイル: RecordingsPanel.cs プロジェクト: rob-opsi/ARGUS-TV
        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);
                }
            }
        }
コード例 #6
0
ファイル: RecordingsPanel.cs プロジェクト: rob-opsi/ARGUS-TV
 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);
 }