diff --git a/MediaBrowser.Api/AlbumsService.cs b/MediaBrowser.Api/AlbumsService.cs
index 2b68e432e1..c1a476e09b 100644
--- a/MediaBrowser.Api/AlbumsService.cs
+++ b/MediaBrowser.Api/AlbumsService.cs
@@ -46,7 +46,7 @@ namespace MediaBrowser.Api
/// System.Object.
public object Get(GetSimilarAlbums request)
{
- var result = SimilarItemsHelper.GetSimilarItems(_userManager,
+ var result = SimilarItemsHelper.GetSimilarItemsResult(_userManager,
_itemRepo,
_libraryManager,
_userDataRepository,
diff --git a/MediaBrowser.Api/GamesService.cs b/MediaBrowser.Api/GamesService.cs
index 4529a9c535..0073397dd2 100644
--- a/MediaBrowser.Api/GamesService.cs
+++ b/MediaBrowser.Api/GamesService.cs
@@ -57,7 +57,7 @@ namespace MediaBrowser.Api
/// System.Object.
public object Get(GetSimilarGames request)
{
- var result = SimilarItemsHelper.GetSimilarItems(_userManager,
+ var result = SimilarItemsHelper.GetSimilarItemsResult(_userManager,
_itemRepo,
_libraryManager,
_userDataRepository,
diff --git a/MediaBrowser.Api/MoviesService.cs b/MediaBrowser.Api/MoviesService.cs
index fe9f4cef10..166a843dc4 100644
--- a/MediaBrowser.Api/MoviesService.cs
+++ b/MediaBrowser.Api/MoviesService.cs
@@ -64,7 +64,7 @@ namespace MediaBrowser.Api
/// System.Object.
public object Get(GetSimilarMovies request)
{
- var result = SimilarItemsHelper.GetSimilarItems(_userManager,
+ var result = SimilarItemsHelper.GetSimilarItemsResult(_userManager,
_itemRepo,
_libraryManager,
_userDataRepository,
diff --git a/MediaBrowser.Api/SimilarItemsHelper.cs b/MediaBrowser.Api/SimilarItemsHelper.cs
index fd49af8dee..5f5d6a2f3f 100644
--- a/MediaBrowser.Api/SimilarItemsHelper.cs
+++ b/MediaBrowser.Api/SimilarItemsHelper.cs
@@ -89,7 +89,7 @@ namespace MediaBrowser.Api
/// The include in search.
/// The get similarity score.
/// ItemsResult.
- internal static ItemsResult GetSimilarItems(IUserManager userManager, IItemRepository itemRepository, ILibraryManager libraryManager, IUserDataRepository userDataRepository, ILogger logger, BaseGetSimilarItems request, Func includeInSearch, Func getSimilarityScore)
+ internal static ItemsResult GetSimilarItemsResult(IUserManager userManager, IItemRepository itemRepository, ILibraryManager libraryManager, IUserDataRepository userDataRepository, ILogger logger, BaseGetSimilarItems request, Func includeInSearch, Func getSimilarityScore)
{
var user = request.UserId.HasValue ? userManager.GetUserById(request.UserId.Value) : null;
@@ -125,7 +125,7 @@ namespace MediaBrowser.Api
/// The include in search.
/// The get similarity score.
/// IEnumerable{BaseItem}.
- private static IEnumerable GetSimilaritems(BaseItem item, IEnumerable inputItems, Func includeInSearch, Func getSimilarityScore)
+ internal static IEnumerable GetSimilaritems(BaseItem item, IEnumerable inputItems, Func includeInSearch, Func getSimilarityScore)
{
inputItems = inputItems.Where(includeInSearch);
diff --git a/MediaBrowser.Api/TrailersService.cs b/MediaBrowser.Api/TrailersService.cs
index 777aced076..96eb5b6c0f 100644
--- a/MediaBrowser.Api/TrailersService.cs
+++ b/MediaBrowser.Api/TrailersService.cs
@@ -57,7 +57,7 @@ namespace MediaBrowser.Api
/// System.Object.
public object Get(GetSimilarTrailers request)
{
- var result = SimilarItemsHelper.GetSimilarItems(_userManager,
+ var result = SimilarItemsHelper.GetSimilarItemsResult(_userManager,
_itemRepo,
_libraryManager,
_userDataRepository,
diff --git a/MediaBrowser.Api/TvShowsService.cs b/MediaBrowser.Api/TvShowsService.cs
index f5d3c99912..4d277dc38f 100644
--- a/MediaBrowser.Api/TvShowsService.cs
+++ b/MediaBrowser.Api/TvShowsService.cs
@@ -123,7 +123,7 @@ namespace MediaBrowser.Api
/// System.Object.
public object Get(GetSimilarShows request)
{
- var result = SimilarItemsHelper.GetSimilarItems(_userManager,
+ var result = SimilarItemsHelper.GetSimilarItemsResult(_userManager,
_itemRepo,
_libraryManager,
_userDataRepository,
diff --git a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs
index e06107b636..58c89141f5 100644
--- a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs
+++ b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs
@@ -376,14 +376,15 @@ namespace MediaBrowser.Server.Implementations.Library
// Get all user collection folders
// Skip BasePluginFolders because we already got them from RootFolder.RecursiveChildren
- var userFolders =
- userRootFolders.SelectMany(i => i.Children)
+ var userFolders = userRootFolders.SelectMany(i => i.Children)
.Where(i => !(i is BasePluginFolder))
.ToList();
items.AddRange(userFolders);
- return new ConcurrentDictionary(items.ToDictionary(i => i.Id));
+ var disctinctItems = items.DistinctBy(i => i.Id).ToList();
+
+ return new ConcurrentDictionary(disctinctItems.ToDictionary(i => i.Id));
}
///
@@ -846,7 +847,7 @@ namespace MediaBrowser.Server.Implementations.Library
var tasks = new List();
- var includedPersonTypes = new[] { PersonType.Actor, PersonType.Director, PersonType.GuestStar, PersonType.Writer, PersonType.Director, PersonType.Producer }
+ var includedPersonTypes = new[] { PersonType.Actor, PersonType.Director, PersonType.GuestStar, PersonType.Writer, PersonType.Producer }
.ToDictionary(i => i, StringComparer.OrdinalIgnoreCase);
var people = RootFolder.RecursiveChildren