diff --git a/Emby.Server.Implementations/ApplicationHost.cs b/Emby.Server.Implementations/ApplicationHost.cs
index 875ed62fe1..ea580bad85 100644
--- a/Emby.Server.Implementations/ApplicationHost.cs
+++ b/Emby.Server.Implementations/ApplicationHost.cs
@@ -247,12 +247,6 @@ namespace Emby.Server.Implementations
public LocalizationManager LocalizationManager { get; set; }
- ///
- /// Gets or sets the user data repository.
- ///
- /// The user data repository.
- private IUserDataManager UserDataManager { get; set; }
-
///
/// Gets the installation manager.
///
@@ -641,8 +635,8 @@ namespace Emby.Server.Implementations
serviceCollection.AddSingleton(new BdInfoExaminer(FileSystemManager));
- UserDataManager = new UserDataManager(LoggerFactory, ServerConfigurationManager, Resolve);
- serviceCollection.AddSingleton(UserDataManager);
+ serviceCollection.AddSingleton();
+ serviceCollection.AddSingleton();
serviceCollection.AddSingleton();
@@ -752,15 +746,12 @@ namespace Emby.Server.Implementations
((SqliteUserRepository)Resolve()).Initialize();
((ActivityRepository)Resolve()).Initialize();
- var userDataRepo = new SqliteUserDataRepository(LoggerFactory.CreateLogger(), ApplicationPaths);
-
SetStaticProperties();
var userManager = (UserManager)Resolve();
userManager.Initialize();
- ((UserDataManager)UserDataManager).Repository = userDataRepo;
-
+ var userDataRepo = (SqliteUserDataRepository)Resolve();
((SqliteItemRepository)Resolve()).Initialize(userDataRepo, userManager);
FindParts();
@@ -846,7 +837,7 @@ namespace Emby.Server.Implementations
BaseItem.ItemRepository = Resolve();
User.UserManager = Resolve();
BaseItem.FileSystem = FileSystemManager;
- BaseItem.UserDataManager = UserDataManager;
+ BaseItem.UserDataManager = Resolve();
BaseItem.ChannelManager = Resolve();
Video.LiveTvManager = Resolve();
Folder.UserViewManager = Resolve();
diff --git a/Emby.Server.Implementations/Library/UserDataManager.cs b/Emby.Server.Implementations/Library/UserDataManager.cs
index 071681b08f..a9772a078d 100644
--- a/Emby.Server.Implementations/Library/UserDataManager.cs
+++ b/Emby.Server.Implementations/Library/UserDataManager.cs
@@ -28,25 +28,24 @@ namespace Emby.Server.Implementations.Library
private readonly ILogger _logger;
private readonly IServerConfigurationManager _config;
-
- private Func _userManager;
-
- public UserDataManager(ILoggerFactory loggerFactory, IServerConfigurationManager config, Func userManager)
+ private readonly IUserManager _userManager;
+ private readonly IUserDataRepository _repository;
+
+ public UserDataManager(
+ ILogger logger,
+ IServerConfigurationManager config,
+ IUserManager userManager,
+ IUserDataRepository repository)
{
+ _logger = logger;
_config = config;
- _logger = loggerFactory.CreateLogger(GetType().Name);
_userManager = userManager;
+ _repository = repository;
}
- ///
- /// Gets or sets the repository.
- ///
- /// The repository.
- public IUserDataRepository Repository { get; set; }
-
public void SaveUserData(Guid userId, BaseItem item, UserItemData userData, UserDataSaveReason reason, CancellationToken cancellationToken)
{
- var user = _userManager().GetUserById(userId);
+ var user = _userManager.GetUserById(userId);
SaveUserData(user, item, userData, reason, cancellationToken);
}
@@ -71,7 +70,7 @@ namespace Emby.Server.Implementations.Library
foreach (var key in keys)
{
- Repository.SaveUserData(userId, key, userData, cancellationToken);
+ _repository.SaveUserData(userId, key, userData, cancellationToken);
}
var cacheKey = GetCacheKey(userId, item.Id);
@@ -96,9 +95,9 @@ namespace Emby.Server.Implementations.Library
///
public void SaveAllUserData(Guid userId, UserItemData[] userData, CancellationToken cancellationToken)
{
- var user = _userManager().GetUserById(userId);
+ var user = _userManager.GetUserById(userId);
- Repository.SaveAllUserData(user.InternalId, userData, cancellationToken);
+ _repository.SaveAllUserData(user.InternalId, userData, cancellationToken);
}
///
@@ -108,14 +107,14 @@ namespace Emby.Server.Implementations.Library
///
public List GetAllUserData(Guid userId)
{
- var user = _userManager().GetUserById(userId);
+ var user = _userManager.GetUserById(userId);
- return Repository.GetAllUserData(user.InternalId);
+ return _repository.GetAllUserData(user.InternalId);
}
public UserItemData GetUserData(Guid userId, Guid itemId, List keys)
{
- var user = _userManager().GetUserById(userId);
+ var user = _userManager.GetUserById(userId);
return GetUserData(user, itemId, keys);
}
@@ -131,7 +130,7 @@ namespace Emby.Server.Implementations.Library
private UserItemData GetUserDataInternal(long internalUserId, List keys)
{
- var userData = Repository.GetUserData(internalUserId, keys);
+ var userData = _repository.GetUserData(internalUserId, keys);
if (userData != null)
{