aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api/UserLibrary/ItemsService.cs
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2014-06-03 22:53:22 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2014-06-03 22:53:22 -0400
commit71351344d7f5a9057fe19b754f5d14d917e79d60 (patch)
tree29829e5b48c16b3b9066ac3ee279a85868771bc8 /MediaBrowser.Api/UserLibrary/ItemsService.cs
parenta6135edf08980d0de41c040b22fae088fa161c4f (diff)
fixes #827 - Alpha filtering incorrectly includes all collections
Diffstat (limited to 'MediaBrowser.Api/UserLibrary/ItemsService.cs')
-rw-r--r--MediaBrowser.Api/UserLibrary/ItemsService.cs35
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)