aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api/TvShowsService.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Api/TvShowsService.cs')
-rw-r--r--MediaBrowser.Api/TvShowsService.cs29
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)));
}