aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/Library
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Server.Implementations/Library')
-rw-r--r--MediaBrowser.Server.Implementations/Library/LibraryManager.cs86
-rw-r--r--MediaBrowser.Server.Implementations/Library/UserManager.cs41
2 files changed, 89 insertions, 38 deletions
diff --git a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs
index 9bc47a025..a21b3e93e 100644
--- a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs
+++ b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs
@@ -7,6 +7,7 @@ using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.Movies;
using MediaBrowser.Controller.IO;
using MediaBrowser.Controller.Library;
+using MediaBrowser.Controller.Persistence;
using MediaBrowser.Controller.Resolvers;
using MediaBrowser.Controller.Sorting;
using MediaBrowser.Model.Configuration;
@@ -61,6 +62,12 @@ namespace MediaBrowser.Server.Implementations.Library
/// <value>The comparers.</value>
private IEnumerable<IBaseItemComparer> Comparers { get; set; }
+ /// <summary>
+ /// Gets the active item repository
+ /// </summary>
+ /// <value>The item repository.</value>
+ public IItemRepository ItemRepository { get; set; }
+
#region LibraryChanged Event
/// <summary>
/// Fires whenever any validation routine adds or removes items. The added and removed items are properties of the args.
@@ -96,12 +103,6 @@ namespace MediaBrowser.Server.Implementations.Library
private readonly IUserManager _userManager;
/// <summary>
- /// Gets or sets the kernel.
- /// </summary>
- /// <value>The kernel.</value>
- private Kernel Kernel { get; set; }
-
- /// <summary>
/// Gets or sets the configuration manager.
/// </summary>
/// <value>The configuration manager.</value>
@@ -126,27 +127,25 @@ namespace MediaBrowser.Server.Implementations.Library
}
}
- private ConcurrentDictionary<string, UserRootFolder> _userRootFolders =
+ private readonly ConcurrentDictionary<string, UserRootFolder> _userRootFolders =
new ConcurrentDictionary<string, UserRootFolder>();
-
+
/// <summary>
/// Initializes a new instance of the <see cref="LibraryManager" /> class.
/// </summary>
- /// <param name="kernel">The kernel.</param>
/// <param name="logger">The logger.</param>
/// <param name="taskManager">The task manager.</param>
/// <param name="userManager">The user manager.</param>
/// <param name="configurationManager">The configuration manager.</param>
- public LibraryManager(Kernel kernel, ILogger logger, ITaskManager taskManager, IUserManager userManager, IServerConfigurationManager configurationManager)
+ public LibraryManager(ILogger logger, ITaskManager taskManager, IUserManager userManager, IServerConfigurationManager configurationManager)
{
- Kernel = kernel;
_logger = logger;
_taskManager = taskManager;
_userManager = userManager;
ConfigurationManager = configurationManager;
ByReferenceItems = new ConcurrentDictionary<Guid, BaseItem>();
- ConfigurationManager.ConfigurationUpdated += kernel_ConfigurationUpdated;
+ ConfigurationManager.ConfigurationUpdated += ConfigurationUpdated;
RecordConfigurationValues(configurationManager.Configuration);
}
@@ -159,7 +158,11 @@ namespace MediaBrowser.Server.Implementations.Library
/// <param name="resolvers">The resolvers.</param>
/// <param name="introProviders">The intro providers.</param>
/// <param name="itemComparers">The item comparers.</param>
- public void AddParts(IEnumerable<IResolverIgnoreRule> rules, IEnumerable<IVirtualFolderCreator> pluginFolders, IEnumerable<IItemResolver> resolvers, IEnumerable<IIntroProvider> introProviders, IEnumerable<IBaseItemComparer> itemComparers)
+ public void AddParts(IEnumerable<IResolverIgnoreRule> rules,
+ IEnumerable<IVirtualFolderCreator> pluginFolders,
+ IEnumerable<IItemResolver> resolvers,
+ IEnumerable<IIntroProvider> introProviders,
+ IEnumerable<IBaseItemComparer> itemComparers)
{
EntityResolutionIgnoreRules = rules;
PluginFolderCreators = pluginFolders;
@@ -212,11 +215,11 @@ namespace MediaBrowser.Server.Implementations.Library
}
/// <summary>
- /// Handles the ConfigurationUpdated event of the kernel control.
+ /// Configurations the updated.
/// </summary>
- /// <param name="sender">The source of the event.</param>
- /// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param>
- void kernel_ConfigurationUpdated(object sender, EventArgs e)
+ /// <param name="sender">The sender.</param>
+ /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
+ void ConfigurationUpdated(object sender, EventArgs e)
{
var config = ConfigurationManager.Configuration;
@@ -476,7 +479,7 @@ namespace MediaBrowser.Server.Implementations.Library
public AggregateFolder CreateRootFolder()
{
var rootFolderPath = ConfigurationManager.ApplicationPaths.RootFolderPath;
- var rootFolder = Kernel.ItemRepository.RetrieveItem(rootFolderPath.GetMBId(typeof(AggregateFolder))) as AggregateFolder ?? (AggregateFolder)ResolvePath(rootFolderPath);
+ var rootFolder = RetrieveItem(rootFolderPath.GetMBId(typeof(AggregateFolder))) as AggregateFolder ?? (AggregateFolder)ResolvePath(rootFolderPath);
// Add in the plug-in folders
foreach (var child in PluginFolderCreators)
@@ -494,7 +497,7 @@ namespace MediaBrowser.Server.Implementations.Library
/// <returns>UserRootFolder.</returns>
public UserRootFolder GetUserRootFolder(string userRootPath)
{
- return _userRootFolders.GetOrAdd(userRootPath, key => Kernel.ItemRepository.RetrieveItem(userRootPath.GetMBId(typeof(UserRootFolder))) as UserRootFolder ?? (UserRootFolder)ResolvePath(userRootPath));
+ return _userRootFolders.GetOrAdd(userRootPath, key => RetrieveItem(userRootPath.GetMBId(typeof(UserRootFolder))) as UserRootFolder ?? (UserRootFolder)ResolvePath(userRootPath));
}
/// <summary>
@@ -639,7 +642,7 @@ namespace MediaBrowser.Server.Implementations.Library
var id = path.GetMBId(typeof(T));
- var item = Kernel.ItemRepository.RetrieveItem(id) as T;
+ var item = RetrieveItem(id) as T;
if (item == null)
{
item = new T
@@ -899,5 +902,48 @@ namespace MediaBrowser.Server.Implementations.Library
return comparer;
}
+
+ /// <summary>
+ /// Saves the item.
+ /// </summary>
+ /// <param name="item">The item.</param>
+ /// <param name="cancellationToken">The cancellation token.</param>
+ /// <returns>Task.</returns>
+ public Task SaveItem(BaseItem item, CancellationToken cancellationToken)
+ {
+ return ItemRepository.SaveItem(item, cancellationToken);
+ }
+
+ /// <summary>
+ /// Retrieves the item.
+ /// </summary>
+ /// <param name="id">The id.</param>
+ /// <returns>Task{BaseItem}.</returns>
+ public BaseItem RetrieveItem(Guid id)
+ {
+ return ItemRepository.RetrieveItem(id);
+ }
+
+ /// <summary>
+ /// Saves the children.
+ /// </summary>
+ /// <param name="id">The id.</param>
+ /// <param name="children">The children.</param>
+ /// <param name="cancellationToken">The cancellation token.</param>
+ /// <returns>Task.</returns>
+ public Task SaveChildren(Guid id, IEnumerable<BaseItem> children, CancellationToken cancellationToken)
+ {
+ return ItemRepository.SaveChildren(id, children, cancellationToken);
+ }
+
+ /// <summary>
+ /// Retrieves the children.
+ /// </summary>
+ /// <param name="parent">The parent.</param>
+ /// <returns>IEnumerable{BaseItem}.</returns>
+ public IEnumerable<BaseItem> RetrieveChildren(Folder parent)
+ {
+ return ItemRepository.RetrieveChildren(parent);
+ }
}
}
diff --git a/MediaBrowser.Server.Implementations/Library/UserManager.cs b/MediaBrowser.Server.Implementations/Library/UserManager.cs
index 9293d8199..f6d20aa53 100644
--- a/MediaBrowser.Server.Implementations/Library/UserManager.cs
+++ b/MediaBrowser.Server.Implementations/Library/UserManager.cs
@@ -4,6 +4,7 @@ using MediaBrowser.Controller;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Library;
+using MediaBrowser.Controller.Persistence;
using MediaBrowser.Model.Connectivity;
using MediaBrowser.Model.Logging;
using System;
@@ -87,29 +88,33 @@ namespace MediaBrowser.Server.Implementations.Library
private readonly ILogger _logger;
/// <summary>
- /// Gets or sets the kernel.
- /// </summary>
- /// <value>The kernel.</value>
- private Kernel Kernel { get; set; }
-
- /// <summary>
/// Gets or sets the configuration manager.
/// </summary>
/// <value>The configuration manager.</value>
private IServerConfigurationManager ConfigurationManager { get; set; }
private readonly ConcurrentDictionary<string, Task<UserItemData>> _userData = new ConcurrentDictionary<string, Task<UserItemData>>();
-
+
+ /// <summary>
+ /// Gets the active user data repository
+ /// </summary>
+ /// <value>The user data repository.</value>
+ public IUserDataRepository UserDataRepository { get; set; }
+
+ /// <summary>
+ /// Gets the active user repository
+ /// </summary>
+ /// <value>The user repository.</value>
+ public IUserRepository UserRepository { get; set; }
+
/// <summary>
/// Initializes a new instance of the <see cref="UserManager" /> class.
/// </summary>
- /// <param name="kernel">The kernel.</param>
/// <param name="logger">The logger.</param>
/// <param name="configurationManager">The configuration manager.</param>
- public UserManager(Kernel kernel, ILogger logger, IServerConfigurationManager configurationManager)
+ public UserManager(ILogger logger, IServerConfigurationManager configurationManager)
{
_logger = logger;
- Kernel = kernel;
ConfigurationManager = configurationManager;
}
@@ -250,7 +255,7 @@ namespace MediaBrowser.Server.Implementations.Library
}
// Save this directly. No need to fire off all the events for this.
- return Kernel.UserRepository.SaveUser(user, CancellationToken.None);
+ return UserRepository.SaveUser(user, CancellationToken.None);
}
/// <summary>
@@ -334,7 +339,7 @@ namespace MediaBrowser.Server.Implementations.Library
/// <returns>IEnumerable{User}.</returns>
private IEnumerable<User> LoadUsers()
{
- var users = Kernel.UserRepository.RetrieveAllUsers().ToList();
+ var users = UserRepository.RetrieveAllUsers().ToList();
// There always has to be at least one user.
if (users.Count == 0)
@@ -343,7 +348,7 @@ namespace MediaBrowser.Server.Implementations.Library
var user = InstantiateNewUser(name);
- var task = Kernel.UserRepository.SaveUser(user, CancellationToken.None);
+ var task = UserRepository.SaveUser(user, CancellationToken.None);
// Hate having to block threads
Task.WaitAll(task);
@@ -422,7 +427,7 @@ namespace MediaBrowser.Server.Implementations.Library
user.DateModified = DateTime.UtcNow;
- await Kernel.UserRepository.SaveUser(user, CancellationToken.None).ConfigureAwait(false);
+ await UserRepository.SaveUser(user, CancellationToken.None).ConfigureAwait(false);
OnUserUpdated(user);
}
@@ -452,7 +457,7 @@ namespace MediaBrowser.Server.Implementations.Library
list.Add(user);
Users = list;
- await Kernel.UserRepository.SaveUser(user, CancellationToken.None).ConfigureAwait(false);
+ await UserRepository.SaveUser(user, CancellationToken.None).ConfigureAwait(false);
return user;
}
@@ -481,7 +486,7 @@ namespace MediaBrowser.Server.Implementations.Library
throw new ArgumentException(string.Format("The user '{0}' be deleted because there must be at least one user in the system.", user.Name));
}
- await Kernel.UserRepository.DeleteUser(user, CancellationToken.None).ConfigureAwait(false);
+ await UserRepository.DeleteUser(user, CancellationToken.None).ConfigureAwait(false);
OnUserDeleted(user);
@@ -713,7 +718,7 @@ namespace MediaBrowser.Server.Implementations.Library
var key = userId + userDataId.ToString();
try
{
- await Kernel.Instance.UserDataRepository.SaveUserData(userId, userDataId, userData, cancellationToken).ConfigureAwait(false);
+ await UserDataRepository.SaveUserData(userId, userDataId, userData, cancellationToken).ConfigureAwait(false);
var newValue = Task.FromResult(userData);
@@ -749,7 +754,7 @@ namespace MediaBrowser.Server.Implementations.Library
/// <returns>Task{UserItemData}.</returns>
private async Task<UserItemData> RetrieveUserData(Guid userId, Guid userDataId)
{
- var userdata = await Kernel.Instance.UserDataRepository.GetUserData(userId, userDataId).ConfigureAwait(false);
+ var userdata = await UserDataRepository.GetUserData(userId, userDataId).ConfigureAwait(false);
return userdata ?? new UserItemData();
}