diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-10-15 18:16:39 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-10-15 18:16:39 -0400 |
| commit | 6a3b31a1b059ca076405598d6eca98923c1e991a (patch) | |
| tree | c4ebb74ffefe83a0f2307fcafc9cb4d02491c6d8 /MediaBrowser.Api/UserLibrary/ItemsService.cs | |
| parent | dc986db8ccf1874189f7ddec058408c166628c84 (diff) | |
added IncludeIndexContainer
Diffstat (limited to 'MediaBrowser.Api/UserLibrary/ItemsService.cs')
| -rw-r--r-- | MediaBrowser.Api/UserLibrary/ItemsService.cs | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/MediaBrowser.Api/UserLibrary/ItemsService.cs b/MediaBrowser.Api/UserLibrary/ItemsService.cs index 6a8992658..d55ba2e90 100644 --- a/MediaBrowser.Api/UserLibrary/ItemsService.cs +++ b/MediaBrowser.Api/UserLibrary/ItemsService.cs @@ -179,6 +179,8 @@ namespace MediaBrowser.Api.UserLibrary [ApiMember(Name = "IsHD", Description = "Optional filter by items that are HD or not.", IsRequired = false, DataType = "bool", ParameterType = "query", Verb = "GET")] public bool? IsHD { get; set; } + + public bool IncludeIndexContainers { get; set; } } /// <summary> @@ -285,20 +287,37 @@ namespace MediaBrowser.Api.UserLibrary var item = string.IsNullOrEmpty(request.ParentId) ? user.RootFolder : _dtoService.GetItemByDtoId(request.ParentId, user.Id); // Default list type = children + IEnumerable<BaseItem> items; if (!string.IsNullOrEmpty(request.Ids)) { var idList = request.Ids.Split(',').ToList(); - return idList.Select(i => _dtoService.GetItemByDtoId(i, user.Id)); + items = idList.Select(i => _dtoService.GetItemByDtoId(i, user.Id)); + } + + else if (request.Recursive) + { + items = ((Folder) item).GetRecursiveChildren(user); + } + else + { + items = ((Folder)item).GetChildren(user, true, request.IndexBy); } - if (request.Recursive) + if (request.IncludeIndexContainers) { - return ((Folder)item).GetRecursiveChildren(user); + var list = items.ToList(); + + var containers = list.Select(i => i.IndexContainer) + .Where(i => i != null); + + list.AddRange(containers); + + return list.Distinct(); } - return ((Folder)item).GetChildren(user, true, request.IndexBy); + return items; } /// <summary> @@ -648,7 +667,7 @@ namespace MediaBrowser.Api.UserLibrary if (string.IsNullOrEmpty(personTypes)) { - items = items.Where(item => item.People != null && item.People.Any(p => string.Equals(p.Name, request.Person, StringComparison.OrdinalIgnoreCase))); + items = items.Where(item => item.People.Any(p => string.Equals(p.Name, request.Person, StringComparison.OrdinalIgnoreCase))); } else { |
