From fe3323a492a35cae736350e896afd077e13e111d Mon Sep 17 00:00:00 2001 From: LukePulverenti Date: Fri, 1 Mar 2013 16:22:34 -0500 Subject: fixes around http response caching, updated the mb icon in the dashboard, and isolated web socket events --- .../Library/LibraryManager.cs | 50 +++++++++++++++------- 1 file changed, 34 insertions(+), 16 deletions(-) (limited to 'MediaBrowser.Server.Implementations/Library/LibraryManager.cs') diff --git a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs index 73eed018d..d2d79db45 100644 --- a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs +++ b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs @@ -26,6 +26,24 @@ namespace MediaBrowser.Server.Implementations.Library /// public class LibraryManager : ILibraryManager { + /// + /// Gets the list of entity resolution ignore rules + /// + /// The entity resolution ignore rules. + public IEnumerable EntityResolutionIgnoreRules { get; private set; } + + /// + /// Gets the list of BasePluginFolders added by plugins + /// + /// The plugin folders. + public IEnumerable PluginFolderCreators { get; set; } + + /// + /// Gets the list of currently registered entity resolvers + /// + /// The entity resolvers enumerable. + public IEnumerable EntityResolvers { get; private set; } + #region LibraryChanged Event /// /// Fires whenever any validation routine adds or removes items. The added and removed items are properties of the args. @@ -40,19 +58,6 @@ namespace MediaBrowser.Server.Implementations.Library public void ReportLibraryChanged(ChildrenChangedEventArgs args) { EventHelper.QueueEventIfNotNull(LibraryChanged, this, args, _logger); - - // Had to put this in a separate method to avoid an implicitly captured closure - SendLibraryChangedWebSocketMessage(args); - } - - /// - /// Sends the library changed web socket message. - /// - /// The instance containing the event data. - private void SendLibraryChangedWebSocketMessage(ChildrenChangedEventArgs args) - { - // Notify connected ui's - Kernel.ServerManager.SendWebSocketMessage("LibraryChanged", () => DtoBuilder.GetLibraryUpdateInfo(args)); } #endregion @@ -94,6 +99,19 @@ namespace MediaBrowser.Server.Implementations.Library kernel.ConfigurationUpdated += kernel_ConfigurationUpdated; } + /// + /// Adds the parts. + /// + /// The rules. + /// The plugin folders. + /// The resolvers. + public void AddParts(IEnumerable rules, IEnumerable pluginFolders, IEnumerable resolvers) + { + EntityResolutionIgnoreRules = rules; + PluginFolderCreators = pluginFolders; + EntityResolvers = resolvers; + } + /// /// The _root folder /// @@ -162,7 +180,7 @@ namespace MediaBrowser.Server.Implementations.Library /// BaseItem. public BaseItem ResolveItem(ItemResolveArgs args) { - return Kernel.EntityResolvers.Select(r => r.ResolvePath(args)).FirstOrDefault(i => i != null); + return EntityResolvers.Select(r => r.ResolvePath(args)).FirstOrDefault(i => i != null); } /// @@ -195,7 +213,7 @@ namespace MediaBrowser.Server.Implementations.Library }; // Return null if ignore rules deem that we should do so - if (Kernel.EntityResolutionIgnoreRules.Any(r => r.ShouldIgnore(args))) + if (EntityResolutionIgnoreRules.Any(r => r.ShouldIgnore(args))) { return null; } @@ -269,7 +287,7 @@ namespace MediaBrowser.Server.Implementations.Library var rootFolder = Kernel.ItemRepository.RetrieveItem(rootFolderPath.GetMBId(typeof(AggregateFolder))) as AggregateFolder ?? (AggregateFolder)ResolvePath(rootFolderPath); // Add in the plug-in folders - foreach (var child in Kernel.PluginFolderCreators) + foreach (var child in PluginFolderCreators) { rootFolder.AddVirtualChild(child.GetFolder()); } -- cgit v1.2.3