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 +++++++++++++++------- .../Library/UserManager.cs | 10 ++--- 2 files changed, 38 insertions(+), 22 deletions(-) (limited to 'MediaBrowser.Server.Implementations/Library') 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()); } diff --git a/MediaBrowser.Server.Implementations/Library/UserManager.cs b/MediaBrowser.Server.Implementations/Library/UserManager.cs index b8b3fc82e..0490a9cf0 100644 --- a/MediaBrowser.Server.Implementations/Library/UserManager.cs +++ b/MediaBrowser.Server.Implementations/Library/UserManager.cs @@ -83,6 +83,10 @@ namespace MediaBrowser.Server.Implementations.Library /// private readonly ILogger _logger; + /// + /// Gets or sets the kernel. + /// + /// The kernel. private Kernel Kernel { get; set; } /// @@ -124,9 +128,6 @@ namespace MediaBrowser.Server.Implementations.Library private void OnUserUpdated(User user) { EventHelper.QueueEventIfNotNull(UserUpdated, this, new GenericEventArgs { Argument = user }, _logger); - - // Notify connected ui's - Kernel.ServerManager.SendWebSocketMessage("UserUpdated", new DtoBuilder(_logger).GetDtoUser(user)); } #endregion @@ -142,9 +143,6 @@ namespace MediaBrowser.Server.Implementations.Library private void OnUserDeleted(User user) { EventHelper.QueueEventIfNotNull(UserDeleted, this, new GenericEventArgs { Argument = user }, _logger); - - // Notify connected ui's - Kernel.ServerManager.SendWebSocketMessage("UserDeleted", user.Id.ToString()); } #endregion -- cgit v1.2.3