From 9c5cceb4ecc277ffb5a3a988f655ad674bf41c58 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Thu, 14 Aug 2014 09:24:30 -0400 Subject: update translations --- .../LiveTv/LiveTvManager.cs | 74 ++++++++++++++++++---- 1 file changed, 60 insertions(+), 14 deletions(-) (limited to 'MediaBrowser.Server.Implementations/LiveTv') diff --git a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs b/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs index ad2b503659..7107814622 100644 --- a/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs +++ b/MediaBrowser.Server.Implementations/LiveTv/LiveTvManager.cs @@ -128,7 +128,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv _taskManager.CancelIfRunningAndQueue(); } - public async Task> GetChannels(LiveTvChannelQuery query, CancellationToken cancellationToken) + public async Task> GetInternalChannels(LiveTvChannelQuery query, CancellationToken cancellationToken) { var user = string.IsNullOrEmpty(query.UserId) ? null : _userManager.GetUserById(new Guid(query.UserId)); @@ -217,9 +217,24 @@ namespace MediaBrowser.Server.Implementations.LiveTv allEnumerable = allEnumerable.Take(query.Limit.Value); } + var result = new QueryResult + { + Items = allEnumerable.ToArray(), + TotalRecordCount = allChannels.Count + }; + + return result; + } + + public async Task> GetChannels(LiveTvChannelQuery query, CancellationToken cancellationToken) + { + var user = string.IsNullOrEmpty(query.UserId) ? null : _userManager.GetUserById(new Guid(query.UserId)); + + var internalResult = await GetInternalChannels(query, cancellationToken).ConfigureAwait(false); + var returnList = new List(); - foreach (var channel in allEnumerable) + foreach (var channel in internalResult.Items) { var currentProgram = await GetCurrentProgram(channel.ExternalId, cancellationToken).ConfigureAwait(false); @@ -229,7 +244,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv var result = new QueryResult { Items = returnList.ToArray(), - TotalRecordCount = allChannels.Count + TotalRecordCount = internalResult.TotalRecordCount }; return result; @@ -260,12 +275,20 @@ namespace MediaBrowser.Server.Implementations.LiveTv return obj; } - private async Task RefreshIfNeeded(IEnumerable programs, CancellationToken cancellationToken) + private Task RefreshIfNeeded(IEnumerable programs, CancellationToken cancellationToken) { - foreach (var program in programs) + var list = programs.ToList(); + + Task.Run(async () => { - await RefreshIfNeeded(program, cancellationToken).ConfigureAwait(false); - } + foreach (var program in list) + { + await RefreshIfNeeded(program, CancellationToken.None).ConfigureAwait(false); + } + + }, cancellationToken); + + return Task.FromResult(true); } private async Task RefreshIfNeeded(LiveTvProgram program, CancellationToken cancellationToken) @@ -275,9 +298,9 @@ namespace MediaBrowser.Server.Implementations.LiveTv return; } - await program.RefreshMetadata(cancellationToken).ConfigureAwait(false); - _refreshedPrograms.TryAdd(program.Id, true); + + await program.RefreshMetadata(cancellationToken).ConfigureAwait(false); } public async Task GetInternalRecording(string id, CancellationToken cancellationToken) @@ -1028,15 +1051,15 @@ namespace MediaBrowser.Server.Implementations.LiveTv return channels.Select(i => new Tuple(service.Name, i)); } - public async Task> GetRecordings(RecordingQuery query, CancellationToken cancellationToken) + public async Task> GetInternalRecordings(RecordingQuery query, CancellationToken cancellationToken) { var service = ActiveService; if (service == null) { - return new QueryResult + return new QueryResult { - Items = new RecordingInfoDto[] { } + Items = new BaseItem[] { } }; } @@ -1121,7 +1144,30 @@ namespace MediaBrowser.Server.Implementations.LiveTv entities = entities.Take(query.Limit.Value); } - var returnArray = entities + return new QueryResult + { + Items = entities.Cast().ToArray(), + TotalRecordCount = entityList.Count + }; + } + + public async Task> GetRecordings(RecordingQuery query, CancellationToken cancellationToken) + { + var service = ActiveService; + + if (service == null) + { + return new QueryResult + { + Items = new RecordingInfoDto[] { } + }; + } + + var user = string.IsNullOrEmpty(query.UserId) ? null : _userManager.GetUserById(new Guid(query.UserId)); + + var internalResult = await GetInternalRecordings(query, cancellationToken).ConfigureAwait(false); + + var returnArray = internalResult.Items.Cast() .Select(i => { var channel = string.IsNullOrEmpty(i.RecordingInfo.ChannelId) ? null : GetInternalChannel(_tvDtoService.GetInternalChannelId(service.Name, i.RecordingInfo.ChannelId)); @@ -1132,7 +1178,7 @@ namespace MediaBrowser.Server.Implementations.LiveTv return new QueryResult { Items = returnArray, - TotalRecordCount = entityList.Count + TotalRecordCount = internalResult.TotalRecordCount }; } -- cgit v1.2.3