diff options
Diffstat (limited to 'MediaBrowser.Server.Implementations/Library')
| -rw-r--r-- | MediaBrowser.Server.Implementations/Library/LibraryManager.cs | 86 | ||||
| -rw-r--r-- | MediaBrowser.Server.Implementations/Library/UserManager.cs | 41 |
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(); } |
