コード例 #1
0
 private static void GetRecordingIconAndToolTip(UpcomingOrActiveProgramsList upcomingRecordings,
     UpcomingCancellationReason cancellationReason, bool isPartOfSeries, UpcomingRecording recording,
     out Icon icon, out string toolTip)
 {
     toolTip = null;
     if (cancellationReason == UpcomingCancellationReason.Manual)
     {
         icon = isPartOfSeries ? Properties.Resources.RecordSeriesCancelledIcon : Properties.Resources.RecordCancelledIcon;
     }
     else if (cancellationReason == UpcomingCancellationReason.PreviouslyRecorded
         || cancellationReason == UpcomingCancellationReason.AlreadyQueued)
     {
         icon = isPartOfSeries ? Properties.Resources.RecordSeriesCancelledHistoryIcon : Properties.Resources.RecordCancelledHistoryIcon;
     }
     else
     {
         if (recording != null && recording.CardChannelAllocation == null)
         {
             icon = (isPartOfSeries ? Properties.Resources.RecordSeriesInConflictIcon : Properties.Resources.RecordInConflictIcon);
             toolTip = CreateConflictingProgramsToolTip(upcomingRecordings, recording.ConflictingPrograms);
         }
         else if (recording != null && recording.ConflictingPrograms.Count > 0)
         {
             icon = (isPartOfSeries ? Properties.Resources.RecordSeriesWithWarningIcon : Properties.Resources.RecordWithWarningIcon);
             toolTip = CreateConflictingProgramsToolTip(upcomingRecordings, recording.ConflictingPrograms);
         }
         else
         {
             icon = GetIcon(ScheduleType.Recording, isPartOfSeries);
         }
     }
 }
コード例 #2
0
 public static string CreateConflictingProgramsToolTip(UpcomingOrActiveProgramsList upcomingRecordings, List<Guid> programIds,
     string conflictsText, string noCardFoundText)
 {
     StringBuilder toolTip = new StringBuilder();
     foreach (Guid programId in programIds)
     {
         if (toolTip.Length > 0)
         {
             toolTip.AppendLine();
         }
         else
         {
             toolTip.AppendLine(conflictsText);
         }
         UpcomingProgram upcomingProgram = upcomingRecordings.FindProgramById(programId);
         if (upcomingProgram != null)
         {
             toolTip.AppendFormat("● {0} {1:g}-{2:t} {3}", upcomingProgram.Channel.DisplayName,
                 upcomingProgram.StartTime, upcomingProgram.StopTime, upcomingProgram.CreateProgramTitle());
         }
         else
         {
             toolTip.Append("● ?");
         }
     }
     if (toolTip.Length == 0)
     {
         toolTip.Append(noCardFoundText);
     }
     return toolTip.ToString();
 }
コード例 #3
0
        public static void GetIconAndToolTip(ScheduleType scheduleType, UpcomingCancellationReason cancellationReason,
            bool isPartOfSeries, UpcomingOrActiveProgramsList upcomingRecordings, UpcomingRecording upcomingRecording,
            out Icon icon, out string toolTip)
        {
            toolTip = null;
            bool isCancelled = (cancellationReason != UpcomingCancellationReason.None);
            switch (scheduleType)
            {
                case ScheduleType.Recording:
                    GetRecordingIconAndToolTip(upcomingRecordings, cancellationReason, isPartOfSeries, upcomingRecording,
                        out icon, out toolTip);
                    break;

                case ScheduleType.Alert:
                    icon = isCancelled ? (isPartOfSeries ? Properties.Resources.AlertSeriesCancelledIcon : Properties.Resources.AlertCancelledIcon)
                        : GetIcon(ScheduleType.Alert, isPartOfSeries);
                    break;

                case ScheduleType.Suggestion:
                    icon = isCancelled ? (isPartOfSeries ? Properties.Resources.SuggestionSeriesCancelledIcon : Properties.Resources.SuggestionCancelledIcon)
                        : GetIcon(ScheduleType.Suggestion, isPartOfSeries);
                    break;

                default:
                    icon = Properties.Resources.TransparentIcon;
                    break;
            }
        }
コード例 #4
0
 private static void GetRecordingIconAndToolTip(UpcomingOrActiveProgramsList upcomingRecordings,
                                                UpcomingCancellationReason cancellationReason, bool isPartOfSeries, UpcomingRecording recording,
                                                out Icon icon, out string toolTip)
 {
     toolTip = null;
     if (cancellationReason == UpcomingCancellationReason.Manual)
     {
         icon = isPartOfSeries ? Properties.Resources.RecordSeriesCancelledIcon : Properties.Resources.RecordCancelledIcon;
     }
     else if (cancellationReason == UpcomingCancellationReason.PreviouslyRecorded ||
              cancellationReason == UpcomingCancellationReason.AlreadyQueued)
     {
         icon = isPartOfSeries ? Properties.Resources.RecordSeriesCancelledHistoryIcon : Properties.Resources.RecordCancelledHistoryIcon;
     }
     else
     {
         if (recording != null && recording.CardChannelAllocation == null)
         {
             icon    = (isPartOfSeries ? Properties.Resources.RecordSeriesInConflictIcon : Properties.Resources.RecordInConflictIcon);
             toolTip = CreateConflictingProgramsToolTip(upcomingRecordings, recording.ConflictingPrograms);
         }
         else if (recording != null && recording.ConflictingPrograms.Count > 0)
         {
             icon    = (isPartOfSeries ? Properties.Resources.RecordSeriesWithWarningIcon : Properties.Resources.RecordWithWarningIcon);
             toolTip = CreateConflictingProgramsToolTip(upcomingRecordings, recording.ConflictingPrograms);
         }
         else
         {
             icon = GetIcon(ScheduleType.Recording, isPartOfSeries);
         }
     }
 }
コード例 #5
0
        public static void GetIconAndToolTip(ScheduleType scheduleType, UpcomingCancellationReason cancellationReason,
                                             bool isPartOfSeries, UpcomingOrActiveProgramsList upcomingRecordings, UpcomingRecording upcomingRecording,
                                             out Icon icon, out string toolTip)
        {
            toolTip = null;
            bool isCancelled = (cancellationReason != UpcomingCancellationReason.None);

            switch (scheduleType)
            {
            case ScheduleType.Recording:
                GetRecordingIconAndToolTip(upcomingRecordings, cancellationReason, isPartOfSeries, upcomingRecording,
                                           out icon, out toolTip);
                break;

            case ScheduleType.Alert:
                icon = isCancelled ? (isPartOfSeries ? Properties.Resources.AlertSeriesCancelledIcon : Properties.Resources.AlertCancelledIcon)
                        : GetIcon(ScheduleType.Alert, isPartOfSeries);
                break;

            case ScheduleType.Suggestion:
                icon = isCancelled ? (isPartOfSeries ? Properties.Resources.SuggestionSeriesCancelledIcon : Properties.Resources.SuggestionCancelledIcon)
                        : GetIcon(ScheduleType.Suggestion, isPartOfSeries);
                break;

            default:
                icon = Properties.Resources.TransparentIcon;
                break;
            }
        }
コード例 #6
0
        public void RemoveUpcomingProgram(Guid scheduleId, Guid?guideProgramId, Guid channelId, DateTime startTime)
        {
            UpcomingOrActiveProgramsList upcomingProgramsList = _upcomingProgramsListBindingSource.DataSource as UpcomingOrActiveProgramsList;

            foreach (UpcomingOrActiveProgramView upcomingView in upcomingProgramsList)
            {
                UpcomingProgram upcomingProgram = upcomingView.UpcomingProgram;
                if (upcomingProgram.ScheduleId == scheduleId &&
                    upcomingProgram.Channel.ChannelId == channelId &&
                    upcomingProgram.GuideProgramId == guideProgramId &&
                    upcomingProgram.StartTime == startTime)
                {
                    upcomingProgramsList.Remove(upcomingView);
                    break;
                }
            }
            _upcomingProgramsListBindingSource.ResetBindings(false);
        }
コード例 #7
0
        public void RemoveUpcomingProgramsForSchedule(Guid scheduleId)
        {
            UpcomingOrActiveProgramsList       upcomingProgramsList = _upcomingProgramsListBindingSource.DataSource as UpcomingOrActiveProgramsList;
            List <UpcomingOrActiveProgramView> toRemove             = new List <UpcomingOrActiveProgramView>();

            foreach (UpcomingOrActiveProgramView upcomingView in upcomingProgramsList)
            {
                UpcomingProgram upcomingProgram = upcomingView.UpcomingProgram;
                if (upcomingProgram.ScheduleId == scheduleId)
                {
                    toRemove.Add(upcomingView);
                }
            }
            foreach (UpcomingOrActiveProgramView upcomingView in toRemove)
            {
                upcomingProgramsList.Remove(upcomingView);
            }
            _upcomingProgramsListBindingSource.ResetBindings(false);
        }
コード例 #8
0
        private void RefreshUpcomingPrograms()
        {
            try
            {
                Cursor.Current = Cursors.WaitCursor;

                UpcomingOrActiveProgramsList upcomingPrograms;
                if (_scheduleType == ScheduleType.Recording)
                {
                    UpcomingRecordingsFilter filter = _showSkippedRecordings.Checked ?
                                                      UpcomingRecordingsFilter.All : UpcomingRecordingsFilter.Recordings | UpcomingRecordingsFilter.CancelledByUser;
                    var allUpcomingRecordings = Proxies.ControlService.GetAllUpcomingRecordings(filter, true).Result;
                    _upcomingProgramsControl.UnfilteredUpcomingRecordings = new UpcomingOrActiveProgramsList(allUpcomingRecordings);
                    upcomingPrograms = new UpcomingOrActiveProgramsList(allUpcomingRecordings);
                    upcomingPrograms.RemoveActiveRecordings(Proxies.ControlService.GetActiveRecordings().Result);
                }
                else
                {
                    _upcomingProgramsControl.UnfilteredUpcomingRecordings = null;
                    upcomingPrograms = new UpcomingOrActiveProgramsList(Proxies.SchedulerService.GetAllUpcomingPrograms(_scheduleType, true).Result);
                }

                ScheduleSummary schedule = _schedulesComboBox.SelectedItem as ScheduleSummary;
                if (schedule != null)
                {
                    upcomingPrograms.ApplyScheduleFilter(schedule.ScheduleId);
                }

                _upcomingProgramsControl.UpcomingPrograms = upcomingPrograms;
            }
            catch (Exception ex)
            {
                MessageBox.Show(this, ex.Message, null, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                Cursor.Current = Cursors.Default;
            }
        }
コード例 #9
0
 private static string CreateConflictingProgramsToolTip(UpcomingOrActiveProgramsList upcomingRecordings, List<Guid> programIds)
 {
     return ProcessUtility.CreateConflictingProgramsToolTip(upcomingRecordings, programIds,
         "Conflicts:", "No card found to record program");
 }
コード例 #10
0
        private void RefreshUpcomingPrograms()
        {
            try
            {
                Cursor.Current = Cursors.WaitCursor;

                UpcomingOrActiveProgramsList upcomingPrograms;
                if (_scheduleType == ScheduleType.Recording)
                {
                    UpcomingRecordingsFilter filter = _showSkippedRecordings.Checked ?
                        UpcomingRecordingsFilter.All : UpcomingRecordingsFilter.Recordings|UpcomingRecordingsFilter.CancelledByUser;
                    var allUpcomingRecordings = Proxies.ControlService.GetAllUpcomingRecordings(filter, true).Result;
                    _upcomingProgramsControl.UnfilteredUpcomingRecordings = new UpcomingOrActiveProgramsList(allUpcomingRecordings);
                    upcomingPrograms = new UpcomingOrActiveProgramsList(allUpcomingRecordings);
                    upcomingPrograms.RemoveActiveRecordings(Proxies.ControlService.GetActiveRecordings().Result);
                }
                else
                {
                    _upcomingProgramsControl.UnfilteredUpcomingRecordings = null;
                    upcomingPrograms = new UpcomingOrActiveProgramsList(Proxies.SchedulerService.GetAllUpcomingPrograms(_scheduleType, true).Result);
                }

                ScheduleSummary schedule = _schedulesComboBox.SelectedItem as ScheduleSummary;
                if (schedule != null)
                {
                    upcomingPrograms.ApplyScheduleFilter(schedule.ScheduleId);
                }

                _upcomingProgramsControl.UpcomingPrograms = upcomingPrograms;
            }
            catch (Exception ex)
            {
                MessageBox.Show(this, ex.Message, null, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                Cursor.Current = Cursors.Default;
            }
        }
コード例 #11
0
 private static string CreateConflictingProgramsToolTip(UpcomingOrActiveProgramsList upcomingRecordings, List <Guid> programIds)
 {
     return(ProcessUtility.CreateConflictingProgramsToolTip(upcomingRecordings, programIds,
                                                            "Conflicts:", "No card found to record program"));
 }