diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-01-08 00:25:21 -0500 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-01-08 00:25:21 -0500 |
| commit | 2e499c60e03b1568493be673c97dddc1324860ad (patch) | |
| tree | 8d880e5540d330681e49e5f968a8ec83097d8578 | |
| parent | ed87558e945ffe92a97a9c262a8edd0540d806fe (diff) | |
add new tab to series timer page
| -rw-r--r-- | MediaBrowser.Api/LiveTv/LiveTvService.cs | 12 | ||||
| -rw-r--r-- | MediaBrowser.Model/LiveTv/RecordingQuery.cs | 12 | ||||
| -rw-r--r-- | MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs | 20 |
3 files changed, 42 insertions, 2 deletions
diff --git a/MediaBrowser.Api/LiveTv/LiveTvService.cs b/MediaBrowser.Api/LiveTv/LiveTvService.cs index df6d9389b..98cc8ddda 100644 --- a/MediaBrowser.Api/LiveTv/LiveTvService.cs +++ b/MediaBrowser.Api/LiveTv/LiveTvService.cs @@ -65,6 +65,9 @@ namespace MediaBrowser.Api.LiveTv [ApiMember(Name = "IsRecording", Description = "Optional filter by recordings that are currently active, or not.", IsRequired = false, DataType = "bool", ParameterType = "query", Verb = "GET")] public bool? IsRecording { get; set; } + + [ApiMember(Name = "SeriesTimerId", Description = "Optional filter by recordings belonging to a series timer", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET")] + public string SeriesTimerId { get; set; } } [Route("/LiveTv/Recordings/Groups", "GET")] @@ -108,6 +111,9 @@ namespace MediaBrowser.Api.LiveTv { [ApiMember(Name = "ChannelId", Description = "Optional filter by channel id.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET")] public string ChannelId { get; set; } + + [ApiMember(Name = "SeriesTimerId", Description = "Optional filter by timers belonging to a series timer", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET")] + public string SeriesTimerId { get; set; } } [Route("/LiveTv/Programs", "GET")] @@ -312,7 +318,8 @@ namespace MediaBrowser.Api.LiveTv GroupId = request.GroupId, StartIndex = request.StartIndex, Limit = request.Limit, - IsRecording = request.IsRecording + IsRecording = request.IsRecording, + SeriesTimerId = request.SeriesTimerId }, CancellationToken.None).Result; @@ -339,7 +346,8 @@ namespace MediaBrowser.Api.LiveTv { var result = _liveTvManager.GetTimers(new TimerQuery { - ChannelId = request.ChannelId + ChannelId = request.ChannelId, + SeriesTimerId = request.SeriesTimerId }, CancellationToken.None).Result; diff --git a/MediaBrowser.Model/LiveTv/RecordingQuery.cs b/MediaBrowser.Model/LiveTv/RecordingQuery.cs index 731247672..a08b7dc30 100644 --- a/MediaBrowser.Model/LiveTv/RecordingQuery.cs +++ b/MediaBrowser.Model/LiveTv/RecordingQuery.cs @@ -46,6 +46,12 @@ /// </summary> /// <value><c>null</c> if [is recording] contains no value, <c>true</c> if [is recording]; otherwise, <c>false</c>.</value> public bool? IsRecording { get; set; } + + /// <summary> + /// Gets or sets the series timer identifier. + /// </summary> + /// <value>The series timer identifier.</value> + public string SeriesTimerId { get; set; } } public class RecordingGroupQuery @@ -64,6 +70,12 @@ /// </summary> /// <value>The channel identifier.</value> public string ChannelId { get; set; } + + /// <summary> + /// Gets or sets the series timer identifier. + /// </summary> + /// <value>The series timer identifier.</value> + public string SeriesTimerId { get; set; } } public class SeriesTimerQuery diff --git a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs b/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs index d49410b4e..7dc210ccc 100644 --- a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs +++ b/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs @@ -565,6 +565,16 @@ namespace MediaBrowser.Server.Implementations.LiveTv recordings = recordings.Where(i => (i.Status == RecordingStatus.InProgress) == val); } + if (!string.IsNullOrEmpty(query.SeriesTimerId)) + { + var guid = new Guid(query.SeriesTimerId); + + var currentServiceName = service.Name; + + recordings = recordings + .Where(i => _tvDtoService.GetInternalSeriesTimerId(currentServiceName, i.SeriesTimerId) == guid); + } + IEnumerable<ILiveTvRecording> entities = await GetEntities(recordings, service.Name, cancellationToken).ConfigureAwait(false); entities = entities.OrderByDescending(i => i.RecordingInfo.StartDate); @@ -640,6 +650,16 @@ namespace MediaBrowser.Server.Implementations.LiveTv timers = timers.Where(i => guid == _tvDtoService.GetInternalChannelId(service.Name, i.ChannelId)); } + if (!string.IsNullOrEmpty(query.SeriesTimerId)) + { + var guid = new Guid(query.SeriesTimerId); + + var currentServiceName = service.Name; + + timers = timers + .Where(i => _tvDtoService.GetInternalSeriesTimerId(currentServiceName, i.SeriesTimerId) == guid); + } + var returnArray = timers .Select(i => { |
