Register and construct IUserDataManager and IUserDataRepository correctly

pull/2765/head
Mark Monteiro 5 years ago
parent 5827f0f5a9
commit 615717e562

@ -247,12 +247,6 @@ namespace Emby.Server.Implementations
public LocalizationManager LocalizationManager { get; set; } public LocalizationManager LocalizationManager { get; set; }
/// <summary>
/// Gets or sets the user data repository.
/// </summary>
/// <value>The user data repository.</value>
private IUserDataManager UserDataManager { get; set; }
/// <summary> /// <summary>
/// Gets the installation manager. /// Gets the installation manager.
/// </summary> /// </summary>
@ -641,8 +635,8 @@ namespace Emby.Server.Implementations
serviceCollection.AddSingleton<IBlurayExaminer>(new BdInfoExaminer(FileSystemManager)); serviceCollection.AddSingleton<IBlurayExaminer>(new BdInfoExaminer(FileSystemManager));
UserDataManager = new UserDataManager(LoggerFactory, ServerConfigurationManager, Resolve<IUserManager>); serviceCollection.AddSingleton<IUserDataRepository, SqliteUserDataRepository>();
serviceCollection.AddSingleton(UserDataManager); serviceCollection.AddSingleton<IUserDataManager, UserDataManager>();
serviceCollection.AddSingleton<IDisplayPreferencesRepository, SqliteDisplayPreferencesRepository>(); serviceCollection.AddSingleton<IDisplayPreferencesRepository, SqliteDisplayPreferencesRepository>();
@ -752,15 +746,12 @@ namespace Emby.Server.Implementations
((SqliteUserRepository)Resolve<IUserRepository>()).Initialize(); ((SqliteUserRepository)Resolve<IUserRepository>()).Initialize();
((ActivityRepository)Resolve<IActivityRepository>()).Initialize(); ((ActivityRepository)Resolve<IActivityRepository>()).Initialize();
var userDataRepo = new SqliteUserDataRepository(LoggerFactory.CreateLogger<SqliteUserDataRepository>(), ApplicationPaths);
SetStaticProperties(); SetStaticProperties();
var userManager = (UserManager)Resolve<IUserManager>(); var userManager = (UserManager)Resolve<IUserManager>();
userManager.Initialize(); userManager.Initialize();
((UserDataManager)UserDataManager).Repository = userDataRepo; var userDataRepo = (SqliteUserDataRepository)Resolve<IUserDataRepository>();
((SqliteItemRepository)Resolve<IItemRepository>()).Initialize(userDataRepo, userManager); ((SqliteItemRepository)Resolve<IItemRepository>()).Initialize(userDataRepo, userManager);
FindParts(); FindParts();
@ -846,7 +837,7 @@ namespace Emby.Server.Implementations
BaseItem.ItemRepository = Resolve<IItemRepository>(); BaseItem.ItemRepository = Resolve<IItemRepository>();
User.UserManager = Resolve<IUserManager>(); User.UserManager = Resolve<IUserManager>();
BaseItem.FileSystem = FileSystemManager; BaseItem.FileSystem = FileSystemManager;
BaseItem.UserDataManager = UserDataManager; BaseItem.UserDataManager = Resolve<IUserDataManager>();
BaseItem.ChannelManager = Resolve<IChannelManager>(); BaseItem.ChannelManager = Resolve<IChannelManager>();
Video.LiveTvManager = Resolve<ILiveTvManager>(); Video.LiveTvManager = Resolve<ILiveTvManager>();
Folder.UserViewManager = Resolve<IUserViewManager>(); Folder.UserViewManager = Resolve<IUserViewManager>();

@ -28,25 +28,24 @@ namespace Emby.Server.Implementations.Library
private readonly ILogger _logger; private readonly ILogger _logger;
private readonly IServerConfigurationManager _config; private readonly IServerConfigurationManager _config;
private readonly IUserManager _userManager;
private Func<IUserManager> _userManager; private readonly IUserDataRepository _repository;
public UserDataManager(ILoggerFactory loggerFactory, IServerConfigurationManager config, Func<IUserManager> userManager) public UserDataManager(
ILogger<UserDataManager> logger,
IServerConfigurationManager config,
IUserManager userManager,
IUserDataRepository repository)
{ {
_logger = logger;
_config = config; _config = config;
_logger = loggerFactory.CreateLogger(GetType().Name);
_userManager = userManager; _userManager = userManager;
_repository = repository;
} }
/// <summary>
/// Gets or sets the repository.
/// </summary>
/// <value>The repository.</value>
public IUserDataRepository Repository { get; set; }
public void SaveUserData(Guid userId, BaseItem item, UserItemData userData, UserDataSaveReason reason, CancellationToken cancellationToken) 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); SaveUserData(user, item, userData, reason, cancellationToken);
} }
@ -71,7 +70,7 @@ namespace Emby.Server.Implementations.Library
foreach (var key in keys) foreach (var key in keys)
{ {
Repository.SaveUserData(userId, key, userData, cancellationToken); _repository.SaveUserData(userId, key, userData, cancellationToken);
} }
var cacheKey = GetCacheKey(userId, item.Id); var cacheKey = GetCacheKey(userId, item.Id);
@ -96,9 +95,9 @@ namespace Emby.Server.Implementations.Library
/// <returns></returns> /// <returns></returns>
public void SaveAllUserData(Guid userId, UserItemData[] userData, CancellationToken cancellationToken) 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);
} }
/// <summary> /// <summary>
@ -108,14 +107,14 @@ namespace Emby.Server.Implementations.Library
/// <returns></returns> /// <returns></returns>
public List<UserItemData> GetAllUserData(Guid userId) public List<UserItemData> 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<string> keys) public UserItemData GetUserData(Guid userId, Guid itemId, List<string> keys)
{ {
var user = _userManager().GetUserById(userId); var user = _userManager.GetUserById(userId);
return GetUserData(user, itemId, keys); return GetUserData(user, itemId, keys);
} }
@ -131,7 +130,7 @@ namespace Emby.Server.Implementations.Library
private UserItemData GetUserDataInternal(long internalUserId, List<string> keys) private UserItemData GetUserDataInternal(long internalUserId, List<string> keys)
{ {
var userData = Repository.GetUserData(internalUserId, keys); var userData = _repository.GetUserData(internalUserId, keys);
if (userData != null) if (userData != null)
{ {

Loading…
Cancel
Save