From 7a014affb27b3e3d00680e39ce6b858f6d954ec6 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Mon, 21 Mar 2016 23:35:24 -0400 Subject: [PATCH] fix albums per artist --- MediaBrowser.Api/Reports/ReportsService.cs | 33 ++++++-------------- MediaBrowser.Api/UserLibrary/ItemsService.cs | 33 ++++++-------------- 2 files changed, 18 insertions(+), 48 deletions(-) diff --git a/MediaBrowser.Api/Reports/ReportsService.cs b/MediaBrowser.Api/Reports/ReportsService.cs index 15bdf4be62..ae6fbc9e24 100644 --- a/MediaBrowser.Api/Reports/ReportsService.cs +++ b/MediaBrowser.Api/Reports/ReportsService.cs @@ -213,8 +213,6 @@ namespace MediaBrowser.Api.Reports SortBy = request.GetOrderBy(), SortOrder = request.SortOrder ?? SortOrder.Ascending, - Filter = i => ApplyAdditionalFilters(request, i, user, _libraryManager), - IsFavorite = request.IsFavorite, Limit = request.Limit, StartIndex = request.StartIndex, @@ -350,6 +348,15 @@ namespace MediaBrowser.Api.Reports query.MaxParentalRating = _localization.GetRatingLevel(request.MinOfficialRating); } + // Artists + if (!string.IsNullOrEmpty(request.ArtistIds)) + { + var artistIds = request.ArtistIds.Split(new[] { '|', ',' }); + + var artistItems = artistIds.Select(_libraryManager.GetItemById).Where(i => i != null).ToList(); + query.ArtistNames = artistItems.Select(i => i.Name).ToArray(); + } + // Artists if (!string.IsNullOrEmpty(request.Artists)) { @@ -371,28 +378,6 @@ namespace MediaBrowser.Api.Reports return query; } - private bool ApplyAdditionalFilters(BaseReportRequest request, BaseItem i, User user, ILibraryManager libraryManager) - { - // Artists - if (!string.IsNullOrEmpty(request.ArtistIds)) - { - var artistIds = request.ArtistIds.Split(new[] { '|', ',' }); - - var audio = i as IHasArtist; - - if (!(audio != null && artistIds.Any(id => - { - var artistItem = libraryManager.GetItemById(id); - return artistItem != null && audio.HasAnyArtist(artistItem.Name); - }))) - { - return false; - } - } - - return true; - } - /// Gets query result. /// The request. /// The query result. diff --git a/MediaBrowser.Api/UserLibrary/ItemsService.cs b/MediaBrowser.Api/UserLibrary/ItemsService.cs index 566b1dfd5c..ea7e16e8d6 100644 --- a/MediaBrowser.Api/UserLibrary/ItemsService.cs +++ b/MediaBrowser.Api/UserLibrary/ItemsService.cs @@ -184,8 +184,6 @@ namespace MediaBrowser.Api.UserLibrary SortBy = request.GetOrderBy(), SortOrder = request.SortOrder ?? SortOrder.Ascending, - Filter = i => ApplyAdditionalFilters(request, i, user, _libraryManager), - IsFavorite = request.IsFavorite, Limit = request.Limit, StartIndex = request.StartIndex, @@ -323,6 +321,15 @@ namespace MediaBrowser.Api.UserLibrary query.MaxParentalRating = _localization.GetRatingLevel(request.MinOfficialRating); } + // Artists + if (!string.IsNullOrEmpty(request.ArtistIds)) + { + var artistIds = request.ArtistIds.Split(new[] { '|', ',' }); + + var artistItems = artistIds.Select(_libraryManager.GetItemById).Where(i => i != null).ToList(); + query.ArtistNames = artistItems.Select(i => i.Name).ToArray(); + } + // Artists if (!string.IsNullOrEmpty(request.Artists)) { @@ -337,28 +344,6 @@ namespace MediaBrowser.Api.UserLibrary return query; } - - private bool ApplyAdditionalFilters(GetItems request, BaseItem i, User user, ILibraryManager libraryManager) - { - // Artists - if (!string.IsNullOrEmpty(request.ArtistIds)) - { - var artistIds = request.ArtistIds.Split(new[] { '|', ',' }); - - var audio = i as IHasArtist; - - if (!(audio != null && artistIds.Any(id => - { - var artistItem = libraryManager.GetItemById(id); - return artistItem != null && audio.HasAnyArtist(artistItem.Name); - }))) - { - return false; - } - } - - return true; - } } ///