From 4d1d2bbaa15e89155bf5bf289ee190db6f155bca Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Tue, 18 Mar 2014 13:05:57 -0400 Subject: Add more channel features --- MediaBrowser.Api/UserLibrary/ItemsService.cs | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) (limited to 'MediaBrowser.Api/UserLibrary') 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; } } /// @@ -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); + } + /// /// Gets the items to serialize. /// @@ -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); -- cgit v1.2.3