diff options
Diffstat (limited to 'MediaBrowser.Api/TvShowsService.cs')
| -rw-r--r-- | MediaBrowser.Api/TvShowsService.cs | 29 |
1 files changed, 16 insertions, 13 deletions
diff --git a/MediaBrowser.Api/TvShowsService.cs b/MediaBrowser.Api/TvShowsService.cs index 04a18e40e..3f3259171 100644 --- a/MediaBrowser.Api/TvShowsService.cs +++ b/MediaBrowser.Api/TvShowsService.cs @@ -70,7 +70,7 @@ namespace MediaBrowser.Api public class GetSimilarShows : BaseGetSimilarItems { } - + /// <summary> /// Class TvShowsService /// </summary> @@ -90,17 +90,20 @@ namespace MediaBrowser.Api /// </summary> private readonly ILibraryManager _libraryManager; + private readonly IItemRepository _itemRepo; + /// <summary> /// Initializes a new instance of the <see cref="TvShowsService" /> class. /// </summary> /// <param name="userManager">The user manager.</param> /// <param name="userDataRepository">The user data repository.</param> /// <param name="libraryManager">The library manager.</param> - public TvShowsService(IUserManager userManager, IUserDataRepository userDataRepository, ILibraryManager libraryManager) + public TvShowsService(IUserManager userManager, IUserDataRepository userDataRepository, ILibraryManager libraryManager, IItemRepository itemRepo) { _userManager = userManager; _userDataRepository = userDataRepository; _libraryManager = libraryManager; + _itemRepo = itemRepo; } /// <summary> @@ -110,9 +113,10 @@ namespace MediaBrowser.Api /// <returns>System.Object.</returns> public object Get(GetSimilarShows request) { - var result = SimilarItemsHelper.GetSimilarItems(_userManager, - _libraryManager, - _userDataRepository, + var result = SimilarItemsHelper.GetSimilarItems(_userManager, + _itemRepo, + _libraryManager, + _userDataRepository, Logger, request, item => item is Series, SimilarItemsHelper.GetSimiliarityScore); @@ -141,20 +145,19 @@ namespace MediaBrowser.Api { var user = _userManager.GetUserById(request.UserId); - var tasks = user.RootFolder + var itemsArray = user.RootFolder .GetRecursiveChildren(user) .OfType<Series>() .AsParallel() - .Select(i => GetNextUp(i, user)); - - var itemsArray = await Task.WhenAll(tasks).ConfigureAwait(false); + .Select(i => GetNextUp(i, user)) + .ToArray(); itemsArray = itemsArray .Where(i => i.Item1 != null) .OrderByDescending(i => { var seriesUserData = - _userDataRepository.GetUserData(user.Id, i.Item1.Series.GetUserDataKey()).Result; + _userDataRepository.GetUserData(user.Id, i.Item1.Series.GetUserDataKey()); if (seriesUserData.IsFavorite) { @@ -190,7 +193,7 @@ namespace MediaBrowser.Api /// <param name="series">The series.</param> /// <param name="user">The user.</param> /// <returns>Task{Episode}.</returns> - private async Task<Tuple<Episode,DateTime>> GetNextUp(Series series, User user) + private Tuple<Episode, DateTime> GetNextUp(Series series, User user) { var allEpisodes = series.GetRecursiveChildren(user) .OfType<Episode>() @@ -205,7 +208,7 @@ namespace MediaBrowser.Api // Go back starting with the most recent episodes foreach (var episode in allEpisodes) { - var userData = await _userDataRepository.GetUserData(user.Id, episode.GetUserDataKey()).ConfigureAwait(false); + var userData = _userDataRepository.GetUserData(user.Id, episode.GetUserDataKey()); if (userData.Played) { @@ -240,7 +243,7 @@ namespace MediaBrowser.Api /// <returns>Task.</returns> private Task<BaseItemDto[]> GetItemDtos(IEnumerable<BaseItem> pagedItems, User user, List<ItemFields> fields) { - var dtoBuilder = new DtoBuilder(Logger, _libraryManager, _userDataRepository); + var dtoBuilder = new DtoBuilder(Logger, _libraryManager, _userDataRepository, _itemRepo); return Task.WhenAll(pagedItems.Select(i => dtoBuilder.GetBaseItemDto(i, fields, user))); } |
