aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/Library/LibraryManager.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Server.Implementations/Library/LibraryManager.cs')
-rw-r--r--MediaBrowser.Server.Implementations/Library/LibraryManager.cs50
1 files changed, 34 insertions, 16 deletions
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
/// </summary>
public class LibraryManager : ILibraryManager
{
+ /// <summary>
+ /// Gets the list of entity resolution ignore rules
+ /// </summary>
+ /// <value>The entity resolution ignore rules.</value>
+ public IEnumerable<IResolutionIgnoreRule> EntityResolutionIgnoreRules { get; private set; }
+
+ /// <summary>
+ /// Gets the list of BasePluginFolders added by plugins
+ /// </summary>
+ /// <value>The plugin folders.</value>
+ public IEnumerable<IVirtualFolderCreator> PluginFolderCreators { get; set; }
+
+ /// <summary>
+ /// Gets the list of currently registered entity resolvers
+ /// </summary>
+ /// <value>The entity resolvers enumerable.</value>
+ public IEnumerable<IBaseItemResolver> EntityResolvers { get; private set; }
+
#region LibraryChanged Event
/// <summary>
/// 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);
- }
-
- /// <summary>
- /// Sends the library changed web socket message.
- /// </summary>
- /// <param name="args">The <see cref="ChildrenChangedEventArgs" /> instance containing the event data.</param>
- private void SendLibraryChangedWebSocketMessage(ChildrenChangedEventArgs args)
- {
- // Notify connected ui's
- Kernel.ServerManager.SendWebSocketMessage("LibraryChanged", () => DtoBuilder.GetLibraryUpdateInfo(args));
}
#endregion
@@ -95,6 +100,19 @@ namespace MediaBrowser.Server.Implementations.Library
}
/// <summary>
+ /// Adds the parts.
+ /// </summary>
+ /// <param name="rules">The rules.</param>
+ /// <param name="pluginFolders">The plugin folders.</param>
+ /// <param name="resolvers">The resolvers.</param>
+ public void AddParts(IEnumerable<IResolutionIgnoreRule> rules, IEnumerable<IVirtualFolderCreator> pluginFolders, IEnumerable<IBaseItemResolver> resolvers)
+ {
+ EntityResolutionIgnoreRules = rules;
+ PluginFolderCreators = pluginFolders;
+ EntityResolvers = resolvers;
+ }
+
+ /// <summary>
/// The _root folder
/// </summary>
private AggregateFolder _rootFolder;
@@ -162,7 +180,7 @@ namespace MediaBrowser.Server.Implementations.Library
/// <returns>BaseItem.</returns>
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);
}
/// <summary>
@@ -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());
}