aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api/UserLibrary
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Api/UserLibrary')
-rw-r--r--MediaBrowser.Api/UserLibrary/ItemsService.cs7
-rw-r--r--MediaBrowser.Api/UserLibrary/PersonsService.cs15
2 files changed, 9 insertions, 13 deletions
diff --git a/MediaBrowser.Api/UserLibrary/ItemsService.cs b/MediaBrowser.Api/UserLibrary/ItemsService.cs
index bc2e4699c..7120f3604 100644
--- a/MediaBrowser.Api/UserLibrary/ItemsService.cs
+++ b/MediaBrowser.Api/UserLibrary/ItemsService.cs
@@ -990,7 +990,7 @@ namespace MediaBrowser.Api.UserLibrary
.Select(p => p == null ? "-1" : p.Name)
.ToList();
- if (!(names.Any(v => i.People.Select(p => p.Name).Contains(v, StringComparer.OrdinalIgnoreCase))))
+ if (!(names.Any(v => libraryManager.GetPeople(i).Select(p => p.Name).Contains(v, StringComparer.OrdinalIgnoreCase))))
{
return false;
}
@@ -1003,7 +1003,7 @@ namespace MediaBrowser.Api.UserLibrary
if (personTypes.Length == 0)
{
- if (!(i.People.Any(p => string.Equals(p.Name, request.Person, StringComparison.OrdinalIgnoreCase))))
+ if (!(libraryManager.GetPeople(i).Any(p => string.Equals(p.Name, request.Person, StringComparison.OrdinalIgnoreCase))))
{
return false;
}
@@ -1013,8 +1013,7 @@ namespace MediaBrowser.Api.UserLibrary
var types = personTypes;
var ok = new[] { i }.Any(item =>
- item.People != null &&
- item.People.Any(p =>
+ libraryManager.GetPeople(item).Any(p =>
p.Name.Equals(request.Person, StringComparison.OrdinalIgnoreCase) && (types.Contains(p.Type, StringComparer.OrdinalIgnoreCase) || types.Contains(p.Role, StringComparer.OrdinalIgnoreCase))));
if (!ok)
diff --git a/MediaBrowser.Api/UserLibrary/PersonsService.cs b/MediaBrowser.Api/UserLibrary/PersonsService.cs
index b7fb4f542..bd9898dcd 100644
--- a/MediaBrowser.Api/UserLibrary/PersonsService.cs
+++ b/MediaBrowser.Api/UserLibrary/PersonsService.cs
@@ -5,7 +5,6 @@ using MediaBrowser.Controller.Net;
using MediaBrowser.Controller.Persistence;
using MediaBrowser.Model.Dto;
using ServiceStack;
-using System;
using System.Collections.Generic;
using System.Linq;
@@ -151,18 +150,16 @@ namespace MediaBrowser.Api.UserLibrary
/// <param name="itemsList">The items list.</param>
/// <param name="personTypes">The person types.</param>
/// <returns>IEnumerable{PersonInfo}.</returns>
- private IEnumerable<PersonInfo> GetAllPeople(IEnumerable<BaseItem> itemsList, string[] personTypes)
+ private IEnumerable<PersonInfo> GetAllPeople(IEnumerable<BaseItem> itemsList, IEnumerable<string> personTypes)
{
- var people = itemsList.SelectMany(i => i.People.OrderBy(p => p.SortOrder ?? int.MaxValue).ThenBy(p => p.Type));
+ var allIds = itemsList.Select(i => i.Id).ToList();
- if (personTypes.Length > 0)
+ var allPeople = LibraryManager.GetPeople(new InternalPeopleQuery
{
- people = people.Where(p =>
- personTypes.Contains(p.Type ?? string.Empty, StringComparer.OrdinalIgnoreCase) ||
- personTypes.Contains(p.Role ?? string.Empty, StringComparer.OrdinalIgnoreCase));
- }
+ PersonTypes = personTypes.ToList()
+ });
- return people;
+ return allPeople.Where(i => allIds.Contains(i.ItemId)).OrderBy(p => p.SortOrder ?? int.MaxValue).ThenBy(p => p.Type);
}
}
}