private void eventSchedule_ScheduleEventStateChanged(object sender, ScheduleEventChangedEventArgs e) { ScheduleEventChange[] scheduleEventChanges = e.Changes; foreach (ScheduleEventChange scheduleEventChange in scheduleEventChanges) { if (scheduleEventChange.NewState == ScheduleEventStates.IsOccurring) { ScheduleEvent scheduleEvent = eventSchedule.GetScheduleEventWithId(scheduleEventChange.ScheduleEventId); onGoingRecordings.Add(RecordingFactory.CreateFromScheduleEvent(scheduleEvent)); } else if (scheduleEventChange.NewState == ScheduleEventStates.HasOccurred) { ScheduleEvent scheduleEvent = eventSchedule.GetScheduleEventWithId(scheduleEventChange.ScheduleEventId); onGoingRecordings.Remove(RecordingFactory.CreateFromScheduleEvent(scheduleEvent)); } } }
public static bool CachedRedDotRecordingMatchesAndIsRecording(string eventKey, ref bool isSeriesRecording) { isSeriesRecording = false; if (!EventScheduleExists) { return(false); } if (!_cachedScheduledEventNames.ContainsKey(eventKey)) { return(false); } string seID = _cachedScheduledEventNames[eventKey]; // is this event recording? ScheduleEvent se = es.GetScheduleEventWithId(seID); if (se != null) { //eventID = se.Id; if ((se.State == ScheduleEventStates.WillOccur) | (se.State == ScheduleEventStates.IsOccurring) | (se.State == ScheduleEventStates.HasOccurred)) { ScheduleRequest sr = null; try { sr = se.GetScheduleRequest(); // Get property from the schedule request if possible, to get series info and also avoid strain on maxRequests errors! isSeriesRecording = ((string)sr.GetExtendedProperty("RequestType") == "Series"); } catch { } // no schedule request attached, so no series recording: dont flag this return(true); } } return(false); }