diff options
Diffstat (limited to 'MediaBrowser.Api/UserLibrary/ItemsService.cs')
| -rw-r--r-- | MediaBrowser.Api/UserLibrary/ItemsService.cs | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/MediaBrowser.Api/UserLibrary/ItemsService.cs b/MediaBrowser.Api/UserLibrary/ItemsService.cs index 44c224989..f70a21eaf 100644 --- a/MediaBrowser.Api/UserLibrary/ItemsService.cs +++ b/MediaBrowser.Api/UserLibrary/ItemsService.cs @@ -113,7 +113,7 @@ namespace MediaBrowser.Api.UserLibrary [ApiMember(Name = "NameStartsWith", Description = "Optional filter by items whose name is sorted equally than a given input string.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET")] public string NameStartsWith { get; set; } - + [ApiMember(Name = "NameLessThan", Description = "Optional filter by items whose name is equally or lesser than a given input string.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET")] public string NameLessThan { get; set; } @@ -240,7 +240,7 @@ namespace MediaBrowser.Api.UserLibrary public bool? HasOfficialRating { get; set; } [ApiMember(Name = "CollapseBoxSetItems", Description = "Whether or not to hide items behind their boxsets.", IsRequired = false, DataType = "bool", ParameterType = "query", Verb = "GET")] - public bool CollapseBoxSetItems { get; set; } + public bool? CollapseBoxSetItems { get; set; } } /// <summary> @@ -318,7 +318,7 @@ namespace MediaBrowser.Api.UserLibrary items = items.AsEnumerable(); - if (request.CollapseBoxSetItems && AllowBoxSetCollapsing(request)) + if (CollapseBoxSetItems(request)) { items = CollapseItemsWithinBoxSets(items, user); } @@ -346,6 +346,22 @@ namespace MediaBrowser.Api.UserLibrary }; } + private bool CollapseBoxSetItems(GetItems request) + { + var param = request.CollapseBoxSetItems; + + if (!param.HasValue) + { + if (!string.IsNullOrWhiteSpace(request.IncludeItemTypes) && + request.IncludeItemTypes.Split(',').Contains("Movie", StringComparer.OrdinalIgnoreCase)) + { + param = true; + } + } + + return param.HasValue && param.Value && AllowBoxSetCollapsing(request); + } + /// <summary> /// Gets the items to serialize. /// </summary> @@ -786,7 +802,7 @@ namespace MediaBrowser.Api.UserLibrary { 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); |
