diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-06-03 22:53:22 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-06-03 22:53:22 -0400 |
| commit | 71351344d7f5a9057fe19b754f5d14d917e79d60 (patch) | |
| tree | 29829e5b48c16b3b9066ac3ee279a85868771bc8 /MediaBrowser.Api/UserLibrary/ItemsService.cs | |
| parent | a6135edf08980d0de41c040b22fae088fa161c4f (diff) | |
fixes #827 - Alpha filtering incorrectly includes all collections
Diffstat (limited to 'MediaBrowser.Api/UserLibrary/ItemsService.cs')
| -rw-r--r-- | MediaBrowser.Api/UserLibrary/ItemsService.cs | 35 |
1 files changed, 21 insertions, 14 deletions
diff --git a/MediaBrowser.Api/UserLibrary/ItemsService.cs b/MediaBrowser.Api/UserLibrary/ItemsService.cs index c7f36e6ac..28337344a 100644 --- a/MediaBrowser.Api/UserLibrary/ItemsService.cs +++ b/MediaBrowser.Api/UserLibrary/ItemsService.cs @@ -326,6 +326,8 @@ namespace MediaBrowser.Api.UserLibrary items = _collectionManager.CollapseItemsWithinBoxSets(items, user); } + items = ApplyPostCollectionCollapseFilters(request, items, user); + items = ApplySortOrder(request, items, user, _libraryManager); // This must be the last filter @@ -811,20 +813,6 @@ namespace MediaBrowser.Api.UserLibrary items = items.Where(f => !vals.Contains(f.LocationType.ToString(), StringComparer.OrdinalIgnoreCase)); } - if (!string.IsNullOrEmpty(request.NameStartsWithOrGreater)) - { - items = items.Where(i => string.Compare(request.NameStartsWithOrGreater, i.SortName, StringComparison.CurrentCultureIgnoreCase) < 1); - } - if (!string.IsNullOrEmpty(request.NameStartsWith)) - { - items = items.Where(i => string.Compare(request.NameStartsWith, i.SortName.Substring(0, 1), StringComparison.CurrentCultureIgnoreCase) == 0); - } - - if (!string.IsNullOrEmpty(request.NameLessThan)) - { - items = items.Where(i => string.Compare(request.NameLessThan, i.SortName, StringComparison.CurrentCultureIgnoreCase) == 1); - } - if (!string.IsNullOrEmpty(request.AlbumArtistStartsWithOrGreater)) { items = items.OfType<IHasAlbumArtist>() @@ -1231,6 +1219,25 @@ namespace MediaBrowser.Api.UserLibrary return items; } + private IEnumerable<BaseItem> ApplyPostCollectionCollapseFilters(GetItems request, IEnumerable<BaseItem> items, User user) + { + if (!string.IsNullOrEmpty(request.NameStartsWithOrGreater)) + { + items = items.Where(i => string.Compare(request.NameStartsWithOrGreater, i.SortName, StringComparison.CurrentCultureIgnoreCase) < 1); + } + if (!string.IsNullOrEmpty(request.NameStartsWith)) + { + items = items.Where(i => string.Compare(request.NameStartsWith, i.SortName.Substring(0, 1), StringComparison.CurrentCultureIgnoreCase) == 0); + } + + if (!string.IsNullOrEmpty(request.NameLessThan)) + { + items = items.Where(i => string.Compare(request.NameLessThan, i.SortName, StringComparison.CurrentCultureIgnoreCase) == 1); + } + + return items; + } + private bool IsYearMismatched(BaseItem item) { if (item.ProductionYear.HasValue) |
