diff options
Diffstat (limited to 'MediaBrowser.Server.Implementations/Library/LibraryManager.cs')
| -rw-r--r-- | MediaBrowser.Server.Implementations/Library/LibraryManager.cs | 48 |
1 files changed, 16 insertions, 32 deletions
diff --git a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs index 84055cea7..a57eb8eaa 100644 --- a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs +++ b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs @@ -124,15 +124,6 @@ namespace MediaBrowser.Server.Implementations.Library LazyInitializer.EnsureInitialized(ref _libraryItemsCache, ref _libraryItemsCacheInitialized, ref _libraryItemsCacheSyncLock, CreateLibraryItemsCache); return _libraryItemsCache; } - set - { - _libraryItemsCache = value; - - if (value == null) - { - _libraryItemsCacheInitialized = false; - } - } } /// <summary> @@ -267,10 +258,22 @@ namespace MediaBrowser.Server.Implementations.Library items.AddRange(specialFeatures); items.AddRange(localTrailers); - // Can't add these right now because there could be separate instances with the same id. - //items.AddRange(_userManager.Users.Select(i => i.RootFolder).Distinct().ToList()); + // Need to use DistinctBy Id because there could be multiple instances with the same id + // due to sharing the default library + var userRootFolders = _userManager.Users.Select(i => i.RootFolder) + .DistinctBy(i => i.Id) + .ToList(); + + items.AddRange(userRootFolders); - items.AddRange(_userManager.Users.SelectMany(i => i.RootFolder.Children).Where(i => !(i is BasePluginFolder)).Distinct().ToList()); + // Get all user collection folders + var userFolders = + _userManager.Users.SelectMany(i => i.RootFolder.Children) + .Where(i => !(i is BasePluginFolder)) + .DistinctBy(i => i.Id) + .ToList(); + + items.AddRange(userFolders); return new ConcurrentDictionary<Guid,BaseItem>(items.ToDictionary(i => i.Id)); } @@ -745,26 +748,6 @@ namespace MediaBrowser.Server.Implementations.Library } /// <summary> - /// Saves display preferences for a Folder - /// </summary> - /// <param name="user">The user.</param> - /// <param name="folder">The folder.</param> - /// <param name="data">The data.</param> - /// <returns>Task.</returns> - public Task SaveDisplayPreferencesForFolder(User user, Folder folder, DisplayPreferences data) - { - // Need to update all items with the same DisplayPreferencesId - foreach (var child in RootFolder.GetRecursiveChildren(user) - .OfType<Folder>() - .Where(i => i.DisplayPreferencesId == folder.DisplayPreferencesId)) - { - child.AddOrUpdateDisplayPreferences(user, data); - } - - return Kernel.DisplayPreferencesRepository.SaveDisplayPreferences(folder, CancellationToken.None); - } - - /// <summary> /// Gets the default view. /// </summary> /// <returns>IEnumerable{VirtualFolderInfo}.</returns> @@ -878,6 +861,7 @@ namespace MediaBrowser.Server.Implementations.Library var userComparer = (IUserBaseItemComparer)Activator.CreateInstance(comparer.GetType()); userComparer.User = user; + userComparer.UserManager = _userManager; return userComparer; } |
