diff options
42 files changed, 143 insertions, 67 deletions
diff --git a/MediaBrowser.Api/AlbumsService.cs b/MediaBrowser.Api/AlbumsService.cs index 46c92b7d9..ffaa6139d 100644 --- a/MediaBrowser.Api/AlbumsService.cs +++ b/MediaBrowser.Api/AlbumsService.cs @@ -26,7 +26,7 @@ namespace MediaBrowser.Api /// <summary> /// The _user data repository /// </summary> - private readonly IUserDataRepository _userDataRepository; + private readonly IUserDataManager _userDataRepository; /// <summary> /// The _library manager /// </summary> @@ -34,7 +34,7 @@ namespace MediaBrowser.Api private readonly IItemRepository _itemRepo; private readonly IDtoService _dtoService; - public AlbumsService(IUserManager userManager, IUserDataRepository userDataRepository, ILibraryManager libraryManager, IItemRepository itemRepo, IDtoService dtoService) + public AlbumsService(IUserManager userManager, IUserDataManager userDataRepository, ILibraryManager libraryManager, IItemRepository itemRepo, IDtoService dtoService) { _userManager = userManager; _userDataRepository = userDataRepository; diff --git a/MediaBrowser.Api/GamesService.cs b/MediaBrowser.Api/GamesService.cs index 14f5ba3da..68b3fc9c8 100644 --- a/MediaBrowser.Api/GamesService.cs +++ b/MediaBrowser.Api/GamesService.cs @@ -48,7 +48,7 @@ namespace MediaBrowser.Api /// <summary> /// The _user data repository /// </summary> - private readonly IUserDataRepository _userDataRepository; + private readonly IUserDataManager _userDataRepository; /// <summary> /// The _library manager /// </summary> @@ -71,7 +71,7 @@ namespace MediaBrowser.Api /// <param name="libraryManager">The library manager.</param> /// <param name="itemRepo">The item repo.</param> /// <param name="dtoService">The dto service.</param> - public GamesService(IUserManager userManager, IUserDataRepository userDataRepository, ILibraryManager libraryManager, IItemRepository itemRepo, IDtoService dtoService) + public GamesService(IUserManager userManager, IUserDataManager userDataRepository, ILibraryManager libraryManager, IItemRepository itemRepo, IDtoService dtoService) { _userManager = userManager; _userDataRepository = userDataRepository; diff --git a/MediaBrowser.Api/MoviesService.cs b/MediaBrowser.Api/MoviesService.cs index b0a4268da..43fbe1f1b 100644 --- a/MediaBrowser.Api/MoviesService.cs +++ b/MediaBrowser.Api/MoviesService.cs @@ -36,7 +36,7 @@ namespace MediaBrowser.Api /// <summary> /// The _user data repository /// </summary> - private readonly IUserDataRepository _userDataRepository; + private readonly IUserDataManager _userDataRepository; /// <summary> /// The _library manager /// </summary> @@ -51,7 +51,7 @@ namespace MediaBrowser.Api /// <param name="userManager">The user manager.</param> /// <param name="userDataRepository">The user data repository.</param> /// <param name="libraryManager">The library manager.</param> - public MoviesService(IUserManager userManager, IUserDataRepository userDataRepository, ILibraryManager libraryManager, IItemRepository itemRepo, IDtoService dtoService) + public MoviesService(IUserManager userManager, IUserDataManager userDataRepository, ILibraryManager libraryManager, IItemRepository itemRepo, IDtoService dtoService) { _userManager = userManager; _userDataRepository = userDataRepository; diff --git a/MediaBrowser.Api/SimilarItemsHelper.cs b/MediaBrowser.Api/SimilarItemsHelper.cs index 1ec58e8e3..587965b3f 100644 --- a/MediaBrowser.Api/SimilarItemsHelper.cs +++ b/MediaBrowser.Api/SimilarItemsHelper.cs @@ -93,7 +93,7 @@ namespace MediaBrowser.Api /// <param name="includeInSearch">The include in search.</param> /// <param name="getSimilarityScore">The get similarity score.</param> /// <returns>ItemsResult.</returns> - internal static ItemsResult GetSimilarItemsResult(IUserManager userManager, IItemRepository itemRepository, ILibraryManager libraryManager, IUserDataRepository userDataRepository, IDtoService dtoService, ILogger logger, BaseGetSimilarItemsFromItem request, Func<BaseItem, bool> includeInSearch, Func<BaseItem, BaseItem, int> getSimilarityScore) + internal static ItemsResult GetSimilarItemsResult(IUserManager userManager, IItemRepository itemRepository, ILibraryManager libraryManager, IUserDataManager userDataRepository, IDtoService dtoService, ILogger logger, BaseGetSimilarItemsFromItem request, Func<BaseItem, bool> includeInSearch, Func<BaseItem, BaseItem, int> getSimilarityScore) { var user = request.UserId.HasValue ? userManager.GetUserById(request.UserId.Value) : null; diff --git a/MediaBrowser.Api/TrailersService.cs b/MediaBrowser.Api/TrailersService.cs index c6336847a..cc67c4036 100644 --- a/MediaBrowser.Api/TrailersService.cs +++ b/MediaBrowser.Api/TrailersService.cs @@ -29,7 +29,7 @@ namespace MediaBrowser.Api /// <summary> /// The _user data repository /// </summary> - private readonly IUserDataRepository _userDataRepository; + private readonly IUserDataManager _userDataRepository; /// <summary> /// The _library manager /// </summary> @@ -44,7 +44,7 @@ namespace MediaBrowser.Api /// <param name="userManager">The user manager.</param> /// <param name="userDataRepository">The user data repository.</param> /// <param name="libraryManager">The library manager.</param> - public TrailersService(IUserManager userManager, IUserDataRepository userDataRepository, ILibraryManager libraryManager, IItemRepository itemRepo, IDtoService dtoService) + public TrailersService(IUserManager userManager, IUserDataManager userDataRepository, ILibraryManager libraryManager, IItemRepository itemRepo, IDtoService dtoService) { _userManager = userManager; _userDataRepository = userDataRepository; diff --git a/MediaBrowser.Api/TvShowsService.cs b/MediaBrowser.Api/TvShowsService.cs index 382e207a7..15d6c0ae2 100644 --- a/MediaBrowser.Api/TvShowsService.cs +++ b/MediaBrowser.Api/TvShowsService.cs @@ -92,7 +92,7 @@ namespace MediaBrowser.Api /// <summary> /// The _user data repository /// </summary> - private readonly IUserDataRepository _userDataRepository; + private readonly IUserDataManager _userDataRepository; /// <summary> /// The _library manager /// </summary> @@ -107,7 +107,7 @@ namespace MediaBrowser.Api /// <param name="userManager">The user manager.</param> /// <param name="userDataRepository">The user data repository.</param> /// <param name="libraryManager">The library manager.</param> - public TvShowsService(IUserManager userManager, IUserDataRepository userDataRepository, ILibraryManager libraryManager, IItemRepository itemRepo, IDtoService dtoService) + public TvShowsService(IUserManager userManager, IUserDataManager userDataRepository, ILibraryManager libraryManager, IItemRepository itemRepo, IDtoService dtoService) { _userManager = userManager; _userDataRepository = userDataRepository; diff --git a/MediaBrowser.Api/UserLibrary/ArtistsService.cs b/MediaBrowser.Api/UserLibrary/ArtistsService.cs index 0ade4a64f..ca626116a 100644 --- a/MediaBrowser.Api/UserLibrary/ArtistsService.cs +++ b/MediaBrowser.Api/UserLibrary/ArtistsService.cs @@ -52,7 +52,7 @@ namespace MediaBrowser.Api.UserLibrary /// <param name="libraryManager">The library manager.</param> /// <param name="userDataRepository">The user data repository.</param> /// <param name="itemRepo">The item repo.</param> - public ArtistsService(IUserManager userManager, ILibraryManager libraryManager, IUserDataRepository userDataRepository, IItemRepository itemRepo, IDtoService dtoService) + public ArtistsService(IUserManager userManager, ILibraryManager libraryManager, IUserDataManager userDataRepository, IItemRepository itemRepo, IDtoService dtoService) : base(userManager, libraryManager, userDataRepository, itemRepo, dtoService) { } diff --git a/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs b/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs index 587416d83..0cb6148cc 100644 --- a/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs +++ b/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs @@ -8,7 +8,6 @@ using ServiceStack.ServiceHost; using System; using System.Collections.Generic; using System.Linq; -using System.Threading.Tasks; namespace MediaBrowser.Api.UserLibrary { @@ -27,7 +26,7 @@ namespace MediaBrowser.Api.UserLibrary /// The library manager /// </summary> protected readonly ILibraryManager LibraryManager; - protected readonly IUserDataRepository UserDataRepository; + protected readonly IUserDataManager UserDataRepository; protected readonly IItemRepository ItemRepository; protected IDtoService DtoService { get; private set; } @@ -39,7 +38,7 @@ namespace MediaBrowser.Api.UserLibrary /// <param name="userDataRepository">The user data repository.</param> /// <param name="itemRepository">The item repository.</param> /// <param name="dtoService">The dto service.</param> - protected BaseItemsByNameService(IUserManager userManager, ILibraryManager libraryManager, IUserDataRepository userDataRepository, IItemRepository itemRepository, IDtoService dtoService) + protected BaseItemsByNameService(IUserManager userManager, ILibraryManager libraryManager, IUserDataManager userDataRepository, IItemRepository itemRepository, IDtoService dtoService) { UserManager = userManager; LibraryManager = libraryManager; diff --git a/MediaBrowser.Api/UserLibrary/GameGenresService.cs b/MediaBrowser.Api/UserLibrary/GameGenresService.cs index 8528eea81..84ab4bf9a 100644 --- a/MediaBrowser.Api/UserLibrary/GameGenresService.cs +++ b/MediaBrowser.Api/UserLibrary/GameGenresService.cs @@ -43,7 +43,7 @@ namespace MediaBrowser.Api.UserLibrary public class GameGenresService : BaseItemsByNameService<GameGenre> { - public GameGenresService(IUserManager userManager, ILibraryManager libraryManager, IUserDataRepository userDataRepository, IItemRepository itemRepo, IDtoService dtoService) + public GameGenresService(IUserManager userManager, ILibraryManager libraryManager, IUserDataManager userDataRepository, IItemRepository itemRepo, IDtoService dtoService) : base(userManager, libraryManager, userDataRepository, itemRepo, dtoService) { } diff --git a/MediaBrowser.Api/UserLibrary/GenresService.cs b/MediaBrowser.Api/UserLibrary/GenresService.cs index a7561bef5..dac54e7c3 100644 --- a/MediaBrowser.Api/UserLibrary/GenresService.cs +++ b/MediaBrowser.Api/UserLibrary/GenresService.cs @@ -47,7 +47,7 @@ namespace MediaBrowser.Api.UserLibrary /// </summary> public class GenresService : BaseItemsByNameService<Genre> { - public GenresService(IUserManager userManager, ILibraryManager libraryManager, IUserDataRepository userDataRepository, IItemRepository itemRepo, IDtoService dtoService) + public GenresService(IUserManager userManager, ILibraryManager libraryManager, IUserDataManager userDataRepository, IItemRepository itemRepo, IDtoService dtoService) : base(userManager, libraryManager, userDataRepository, itemRepo, dtoService) { } diff --git a/MediaBrowser.Api/UserLibrary/ItemByNameUserDataService.cs b/MediaBrowser.Api/UserLibrary/ItemByNameUserDataService.cs index 609bee668..c1d011557 100644 --- a/MediaBrowser.Api/UserLibrary/ItemByNameUserDataService.cs +++ b/MediaBrowser.Api/UserLibrary/ItemByNameUserDataService.cs @@ -132,7 +132,7 @@ namespace MediaBrowser.Api.UserLibrary /// <summary> /// The user data repository /// </summary> - protected readonly IUserDataRepository UserDataRepository; + protected readonly IUserDataManager UserDataRepository; /// <summary> /// The library manager @@ -145,7 +145,7 @@ namespace MediaBrowser.Api.UserLibrary /// </summary> /// <param name="userDataRepository">The user data repository.</param> /// <param name="libraryManager">The library manager.</param> - public ItemByNameUserDataService(IUserDataRepository userDataRepository, ILibraryManager libraryManager, IDtoService dtoService) + public ItemByNameUserDataService(IUserDataManager userDataRepository, ILibraryManager libraryManager, IDtoService dtoService) { UserDataRepository = userDataRepository; LibraryManager = libraryManager; diff --git a/MediaBrowser.Api/UserLibrary/ItemsService.cs b/MediaBrowser.Api/UserLibrary/ItemsService.cs index 413c683de..b588e4a85 100644 --- a/MediaBrowser.Api/UserLibrary/ItemsService.cs +++ b/MediaBrowser.Api/UserLibrary/ItemsService.cs @@ -188,7 +188,7 @@ namespace MediaBrowser.Api.UserLibrary /// The _user manager /// </summary> private readonly IUserManager _userManager; - private readonly IUserDataRepository _userDataRepository; + private readonly IUserDataManager _userDataRepository; /// <summary> /// The _library manager @@ -206,7 +206,7 @@ namespace MediaBrowser.Api.UserLibrary /// <param name="libraryManager">The library manager.</param> /// <param name="searchEngine">The search engine.</param> /// <param name="userDataRepository">The user data repository.</param> - public ItemsService(IUserManager userManager, ILibraryManager libraryManager, ILibrarySearchEngine searchEngine, IUserDataRepository userDataRepository, ILocalizationManager localization, IDtoService dtoService) + public ItemsService(IUserManager userManager, ILibraryManager libraryManager, ILibrarySearchEngine searchEngine, IUserDataManager userDataRepository, ILocalizationManager localization, IDtoService dtoService) { _userManager = userManager; _libraryManager = libraryManager; @@ -322,7 +322,7 @@ namespace MediaBrowser.Api.UserLibrary /// <param name="user">The user.</param> /// <param name="repository">The repository.</param> /// <returns>IEnumerable{BaseItem}.</returns> - internal static IEnumerable<BaseItem> ApplyFilter(IEnumerable<BaseItem> items, ItemFilter filter, User user, IUserDataRepository repository) + internal static IEnumerable<BaseItem> ApplyFilter(IEnumerable<BaseItem> items, ItemFilter filter, User user, IUserDataManager repository) { switch (filter) { diff --git a/MediaBrowser.Api/UserLibrary/MusicGenresService.cs b/MediaBrowser.Api/UserLibrary/MusicGenresService.cs index 7c131831f..8ed280dc4 100644 --- a/MediaBrowser.Api/UserLibrary/MusicGenresService.cs +++ b/MediaBrowser.Api/UserLibrary/MusicGenresService.cs @@ -43,7 +43,7 @@ namespace MediaBrowser.Api.UserLibrary public class MusicGenresService : BaseItemsByNameService<MusicGenre> { - public MusicGenresService(IUserManager userManager, ILibraryManager libraryManager, IUserDataRepository userDataRepository, IItemRepository itemRepo, IDtoService dtoService) + public MusicGenresService(IUserManager userManager, ILibraryManager libraryManager, IUserDataManager userDataRepository, IItemRepository itemRepo, IDtoService dtoService) : base(userManager, libraryManager, userDataRepository, itemRepo, dtoService) { } diff --git a/MediaBrowser.Api/UserLibrary/PersonsService.cs b/MediaBrowser.Api/UserLibrary/PersonsService.cs index 7c8dc7259..57a9b0109 100644 --- a/MediaBrowser.Api/UserLibrary/PersonsService.cs +++ b/MediaBrowser.Api/UserLibrary/PersonsService.cs @@ -59,7 +59,7 @@ namespace MediaBrowser.Api.UserLibrary /// <param name="libraryManager">The library manager.</param> /// <param name="userDataRepository">The user data repository.</param> /// <param name="itemRepo">The item repo.</param> - public PersonsService(IUserManager userManager, ILibraryManager libraryManager, IUserDataRepository userDataRepository, IItemRepository itemRepo, IDtoService dtoService) + public PersonsService(IUserManager userManager, ILibraryManager libraryManager, IUserDataManager userDataRepository, IItemRepository itemRepo, IDtoService dtoService) : base(userManager, libraryManager, userDataRepository, itemRepo, dtoService) { } diff --git a/MediaBrowser.Api/UserLibrary/StudiosService.cs b/MediaBrowser.Api/UserLibrary/StudiosService.cs index 57046e701..933191679 100644 --- a/MediaBrowser.Api/UserLibrary/StudiosService.cs +++ b/MediaBrowser.Api/UserLibrary/StudiosService.cs @@ -48,7 +48,7 @@ namespace MediaBrowser.Api.UserLibrary /// </summary> public class StudiosService : BaseItemsByNameService<Studio> { - public StudiosService(IUserManager userManager, ILibraryManager libraryManager, IUserDataRepository userDataRepository, IItemRepository itemRepo, IDtoService dtoService) + public StudiosService(IUserManager userManager, ILibraryManager libraryManager, IUserDataManager userDataRepository, IItemRepository itemRepo, IDtoService dtoService) : base(userManager, libraryManager, userDataRepository, itemRepo, dtoService) { } diff --git a/MediaBrowser.Api/UserLibrary/UserLibraryService.cs b/MediaBrowser.Api/UserLibrary/UserLibraryService.cs index ead0b7fdb..93dc411e6 100644 --- a/MediaBrowser.Api/UserLibrary/UserLibraryService.cs +++ b/MediaBrowser.Api/UserLibrary/UserLibraryService.cs @@ -381,7 +381,7 @@ namespace MediaBrowser.Api.UserLibrary /// <summary> /// The _user data repository /// </summary> - private readonly IUserDataRepository _userDataRepository; + private readonly IUserDataManager _userDataRepository; /// <summary> /// The _library manager /// </summary> @@ -399,7 +399,7 @@ namespace MediaBrowser.Api.UserLibrary /// <param name="sessionManager">The session manager.</param> /// <param name="dtoService">The dto service.</param> /// <exception cref="System.ArgumentNullException">jsonSerializer</exception> - public UserLibraryService(IUserManager userManager, ILibraryManager libraryManager, IUserDataRepository userDataRepository, ISessionManager sessionManager, IDtoService dtoService) + public UserLibraryService(IUserManager userManager, ILibraryManager libraryManager, IUserDataManager userDataRepository, ISessionManager sessionManager, IDtoService dtoService) { _userManager = userManager; _libraryManager = libraryManager; diff --git a/MediaBrowser.Api/UserLibrary/YearsService.cs b/MediaBrowser.Api/UserLibrary/YearsService.cs index 666def277..6d87a791c 100644 --- a/MediaBrowser.Api/UserLibrary/YearsService.cs +++ b/MediaBrowser.Api/UserLibrary/YearsService.cs @@ -53,7 +53,7 @@ namespace MediaBrowser.Api.UserLibrary /// </summary> private static readonly CultureInfo UsCulture = new CultureInfo("en-US"); - public YearsService(IUserManager userManager, ILibraryManager libraryManager, IUserDataRepository userDataRepository, IItemRepository itemRepo, IDtoService dtoService) + public YearsService(IUserManager userManager, ILibraryManager libraryManager, IUserDataManager userDataRepository, IItemRepository itemRepo, IDtoService dtoService) : base(userManager, libraryManager, userDataRepository, itemRepo, dtoService) { } diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs index d13f3637a..e05394c30 100644 --- a/MediaBrowser.Controller/Entities/BaseItem.cs +++ b/MediaBrowser.Controller/Entities/BaseItem.cs @@ -1333,7 +1333,7 @@ namespace MediaBrowser.Controller.Entities /// <param name="userManager">The user manager.</param> /// <returns>Task.</returns> /// <exception cref="System.ArgumentNullException"></exception> - public virtual async Task MarkPlayed(User user, DateTime? datePlayed, IUserDataRepository userManager) + public virtual async Task MarkPlayed(User user, DateTime? datePlayed, IUserDataManager userManager) { if (user == null) { @@ -1359,7 +1359,7 @@ namespace MediaBrowser.Controller.Entities /// <param name="userManager">The user manager.</param> /// <returns>Task.</returns> /// <exception cref="System.ArgumentNullException"></exception> - public virtual async Task MarkUnplayed(User user, IUserDataRepository userManager) + public virtual async Task MarkUnplayed(User user, IUserDataManager userManager) { if (user == null) { diff --git a/MediaBrowser.Controller/Entities/Folder.cs b/MediaBrowser.Controller/Entities/Folder.cs index 8d518963c..5e6b02e08 100644 --- a/MediaBrowser.Controller/Entities/Folder.cs +++ b/MediaBrowser.Controller/Entities/Folder.cs @@ -1247,7 +1247,7 @@ namespace MediaBrowser.Controller.Entities /// <param name="datePlayed">The date played.</param> /// <param name="userManager">The user manager.</param> /// <returns>Task.</returns> - public override async Task MarkPlayed(User user, DateTime? datePlayed, IUserDataRepository userManager) + public override async Task MarkPlayed(User user, DateTime? datePlayed, IUserDataManager userManager) { // Sweep through recursively and update status var tasks = GetRecursiveChildren(user, true).Where(i => !i.IsFolder).Select(c => c.MarkPlayed(user, datePlayed, userManager)); @@ -1261,7 +1261,7 @@ namespace MediaBrowser.Controller.Entities /// <param name="user">The user.</param> /// <param name="userManager">The user manager.</param> /// <returns>Task.</returns> - public override async Task MarkUnplayed(User user, IUserDataRepository userManager) + public override async Task MarkUnplayed(User user, IUserDataManager userManager) { // Sweep through recursively and update status var tasks = GetRecursiveChildren(user, true).Where(i => !i.IsFolder).Select(c => c.MarkUnplayed(user, userManager)); diff --git a/MediaBrowser.Controller/Library/IUserDataManager.cs b/MediaBrowser.Controller/Library/IUserDataManager.cs new file mode 100644 index 000000000..d629705e9 --- /dev/null +++ b/MediaBrowser.Controller/Library/IUserDataManager.cs @@ -0,0 +1,28 @@ +using MediaBrowser.Controller.Entities; +using System; +using System.Threading; +using System.Threading.Tasks; + +namespace MediaBrowser.Controller.Library +{ + public interface IUserDataManager + { + /// <summary> + /// Saves the user data. + /// </summary> + /// <param name="userId">The user id.</param> + /// <param name="key">The key.</param> + /// <param name="userData">The user data.</param> + /// <param name="cancellationToken">The cancellation token.</param> + /// <returns>Task.</returns> + Task SaveUserData(Guid userId, string key, UserItemData userData, CancellationToken cancellationToken); + + /// <summary> + /// Gets the user data. + /// </summary> + /// <param name="userId">The user id.</param> + /// <param name="key">The key.</param> + /// <returns>Task{UserItemData}.</returns> + UserItemData GetUserData(Guid userId, string key); + } +} diff --git a/MediaBrowser.Controller/MediaBrowser.Controller.csproj b/MediaBrowser.Controller/MediaBrowser.Controller.csproj index 3b94ea35c..760ff382c 100644 --- a/MediaBrowser.Controller/MediaBrowser.Controller.csproj +++ b/MediaBrowser.Controller/MediaBrowser.Controller.csproj @@ -97,6 +97,7 @@ <Compile Include="Library\ILibraryPrescanTask.cs" /> <Compile Include="Library\IMetadataSaver.cs" /> <Compile Include="Library\ItemUpdateType.cs" /> + <Compile Include="Library\IUserDataManager.cs" /> <Compile Include="LiveTv\ChannelInfo.cs" /> <Compile Include="LiveTv\ILiveTvManager.cs" /> <Compile Include="LiveTv\ILiveTvService.cs" /> diff --git a/MediaBrowser.Controller/Persistence/IUserDataRepository.cs b/MediaBrowser.Controller/Persistence/IUserDataRepository.cs index 282952dba..b0ce7bf7c 100644 --- a/MediaBrowser.Controller/Persistence/IUserDataRepository.cs +++ b/MediaBrowser.Controller/Persistence/IUserDataRepository.cs @@ -24,8 +24,7 @@ namespace MediaBrowser.Controller.Persistence /// <param name="userData">The user data.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns>Task.</returns> - Task SaveUserData(Guid userId, string key, UserItemData userData, - CancellationToken cancellationToken); + Task SaveUserData(Guid userId, string key, UserItemData userData, CancellationToken cancellationToken); /// <summary> /// Gets the user data. diff --git a/MediaBrowser.Controller/Sorting/IUserBaseItemComparer.cs b/MediaBrowser.Controller/Sorting/IUserBaseItemComparer.cs index d464a64a0..915d4854b 100644 --- a/MediaBrowser.Controller/Sorting/IUserBaseItemComparer.cs +++ b/MediaBrowser.Controller/Sorting/IUserBaseItemComparer.cs @@ -1,6 +1,5 @@ using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Library; -using MediaBrowser.Controller.Persistence; namespace MediaBrowser.Controller.Sorting { @@ -25,6 +24,6 @@ namespace MediaBrowser.Controller.Sorting /// Gets or sets the user data repository. /// </summary> /// <value>The user data repository.</value> - IUserDataRepository UserDataRepository { get; set; } + IUserDataManager UserDataRepository { get; set; } } } diff --git a/MediaBrowser.Server.Implementations/Dto/DtoService.cs b/MediaBrowser.Server.Implementations/Dto/DtoService.cs index ee69bbc97..00808ad33 100644 --- a/MediaBrowser.Server.Implementations/Dto/DtoService.cs +++ b/MediaBrowser.Server.Implementations/Dto/DtoService.cs @@ -27,12 +27,12 @@ namespace MediaBrowser.Server.Implementations.Dto private readonly ILogger _logger; private readonly ILibraryManager _libraryManager; private readonly IUserManager _userManager; - private readonly IUserDataRepository _userDataRepository; + private readonly IUserDataManager _userDataRepository; private readonly IItemRepository _itemRepo; private readonly IImageProcessor _imageProcessor; - - public DtoService(ILogger logger, ILibraryManager libraryManager, IUserManager userManager, IUserDataRepository userDataRepository, IItemRepository itemRepo, IImageProcessor imageProcessor) + + public DtoService(ILogger logger, ILibraryManager libraryManager, IUserManager userManager, IUserDataManager userDataRepository, IItemRepository itemRepo, IImageProcessor imageProcessor) { _logger = logger; _libraryManager = libraryManager; diff --git a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs index de096e3b3..d54bb94de 100644 --- a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs +++ b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs @@ -113,7 +113,7 @@ namespace MediaBrowser.Server.Implementations.Library /// <summary> /// The _user data repository /// </summary> - private readonly IUserDataRepository _userDataRepository; + private readonly IUserDataManager _userDataRepository; /// <summary> /// Gets or sets the configuration manager. @@ -172,7 +172,7 @@ namespace MediaBrowser.Server.Implementations.Library /// <param name="userManager">The user manager.</param> /// <param name="configurationManager">The configuration manager.</param> /// <param name="userDataRepository">The user data repository.</param> - public LibraryManager(ILogger logger, ITaskManager taskManager, IUserManager userManager, IServerConfigurationManager configurationManager, IUserDataRepository userDataRepository, Func<IDirectoryWatchers> directoryWatchersFactory) + public LibraryManager(ILogger logger, ITaskManager taskManager, IUserManager userManager, IServerConfigurationManager configurationManager, IUserDataManager userDataRepository, Func<IDirectoryWatchers> directoryWatchersFactory) { _logger = logger; _taskManager = taskManager; diff --git a/MediaBrowser.Server.Implementations/Library/UserDataManager.cs b/MediaBrowser.Server.Implementations/Library/UserDataManager.cs new file mode 100644 index 000000000..f382df0f0 --- /dev/null +++ b/MediaBrowser.Server.Implementations/Library/UserDataManager.cs @@ -0,0 +1,45 @@ +using MediaBrowser.Controller.Entities; +using MediaBrowser.Controller.Library; +using MediaBrowser.Controller.Persistence; +using System; +using System.Threading; +using System.Threading.Tasks; + +namespace MediaBrowser.Server.Implementations.Library +{ + /// <summary> + /// Class UserDataManager + /// </summary> + public class UserDataManager : IUserDataManager + { + /// <summary> + /// Gets or sets the repository. + /// </summary> + /// <value>The repository.</value> + public IUserDataRepository Repository { get; set; } + + /// <summary> + /// Saves the user data. + /// </summary> + /// <param name="userId">The user id.</param> + /// <param name="key">The key.</param> + /// <param name="userData">The user data.</param> + /// <param name="cancellationToken">The cancellation token.</param> + /// <returns>Task.</returns> + public Task SaveUserData(Guid userId, string key, UserItemData userData, CancellationToken cancellationToken) + { + return Repository.SaveUserData(userId, key, userData, cancellationToken); + } + + /// <summary> + /// Gets the user data. + /// </summary> + /// <param name="userId">The user id.</param> + /// <param name="key">The key.</param> + /// <returns>Task{UserItemData}.</returns> + public UserItemData GetUserData(Guid userId, string key) + { + return Repository.GetUserData(userId, key); + } + } +} diff --git a/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj b/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj index 79ad8ada7..b0f7553ea 100644 --- a/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj +++ b/MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj @@ -142,6 +142,7 @@ <Compile Include="Library\Resolvers\TV\SeasonResolver.cs" /> <Compile Include="Library\Resolvers\TV\SeriesResolver.cs" /> <Compile Include="Library\Resolvers\VideoResolver.cs" /> + <Compile Include="Library\UserDataManager.cs" /> <Compile Include="Library\UserManager.cs" /> <Compile Include="Library\Validators\ArtistsPostScanTask.cs" /> <Compile Include="Library\Validators\ArtistsValidator.cs" /> diff --git a/MediaBrowser.Server.Implementations/Session/SessionManager.cs b/MediaBrowser.Server.Implementations/Session/SessionManager.cs index 346c496ce..1659901c6 100644 --- a/MediaBrowser.Server.Implementations/Session/SessionManager.cs +++ b/MediaBrowser.Server.Implementations/Session/SessionManager.cs @@ -25,7 +25,7 @@ namespace MediaBrowser.Server.Implementations.Session /// <summary> /// The _user data repository /// </summary> - private readonly IUserDataRepository _userDataRepository; + private readonly IUserDataManager _userDataRepository; /// <summary> /// The _user repository @@ -69,7 +69,7 @@ namespace MediaBrowser.Server.Implementations.Session /// <param name="configurationManager">The configuration manager.</param> /// <param name="logger">The logger.</param> /// <param name="userRepository">The user repository.</param> - public SessionManager(IUserDataRepository userDataRepository, IServerConfigurationManager configurationManager, ILogger logger, IUserRepository userRepository) + public SessionManager(IUserDataManager userDataRepository, IServerConfigurationManager configurationManager, ILogger logger, IUserRepository userRepository) { _userDataRepository = userDataRepository; _configurationManager = configurationManager; diff --git a/MediaBrowser.Server.Implementations/Sorting/AlbumCountComparer.cs b/MediaBrowser.Server.Implementations/Sorting/AlbumCountComparer.cs index 62f0e0ae0..8e24bc52d 100644 --- a/MediaBrowser.Server.Implementations/Sorting/AlbumCountComparer.cs +++ b/MediaBrowser.Server.Implementations/Sorting/AlbumCountComparer.cs @@ -24,7 +24,7 @@ namespace MediaBrowser.Server.Implementations.Sorting /// Gets or sets the user data repository. /// </summary> /// <value>The user data repository.</value> - public IUserDataRepository UserDataRepository { get; set; } + public IUserDataManager UserDataRepository { get; set; } /// <summary> /// Compares the specified x. diff --git a/MediaBrowser.Server.Implementations/Sorting/DatePlayedComparer.cs b/MediaBrowser.Server.Implementations/Sorting/DatePlayedComparer.cs index 2abd4d0f2..7605a7a50 100644 --- a/MediaBrowser.Server.Implementations/Sorting/DatePlayedComparer.cs +++ b/MediaBrowser.Server.Implementations/Sorting/DatePlayedComparer.cs @@ -28,7 +28,7 @@ namespace MediaBrowser.Server.Implementations.Sorting /// Gets or sets the user data repository. /// </summary> /// <value>The user data repository.</value> - public IUserDataRepository UserDataRepository { get; set; } + public IUserDataManager UserDataRepository { get; set; } /// <summary> /// Compares the specified x. diff --git a/MediaBrowser.Server.Implementations/Sorting/EpisodeCountComparer.cs b/MediaBrowser.Server.Implementations/Sorting/EpisodeCountComparer.cs index e4eaad2aa..7731e59d2 100644 --- a/MediaBrowser.Server.Implementations/Sorting/EpisodeCountComparer.cs +++ b/MediaBrowser.Server.Implementations/Sorting/EpisodeCountComparer.cs @@ -24,7 +24,7 @@ namespace MediaBrowser.Server.Implementations.Sorting /// Gets or sets the user data repository. /// </summary> /// <value>The user data repository.</value> - public IUserDataRepository UserDataRepository { get; set; } + public IUserDataManager UserDataRepository { get; set; } /// <summary> /// Compares the specified x. diff --git a/MediaBrowser.Server.Implementations/Sorting/IsUnplayedComparer.cs b/MediaBrowser.Server.Implementations/Sorting/IsUnplayedComparer.cs index 5323734c0..596b344de 100644 --- a/MediaBrowser.Server.Implementations/Sorting/IsUnplayedComparer.cs +++ b/MediaBrowser.Server.Implementations/Sorting/IsUnplayedComparer.cs @@ -55,7 +55,7 @@ namespace MediaBrowser.Server.Implementations.Sorting /// Gets or sets the user data repository. /// </summary> /// <value>The user data repository.</value> - public IUserDataRepository UserDataRepository { get; set; } + public IUserDataManager UserDataRepository { get; set; } /// <summary> /// Gets or sets the user manager. @@ -113,7 +113,7 @@ namespace MediaBrowser.Server.Implementations.Sorting /// Gets or sets the user data repository. /// </summary> /// <value>The user data repository.</value> - public IUserDataRepository UserDataRepository { get; set; } + public IUserDataManager UserDataRepository { get; set; } /// <summary> /// Gets or sets the user manager. diff --git a/MediaBrowser.Server.Implementations/Sorting/MovieCountComparer.cs b/MediaBrowser.Server.Implementations/Sorting/MovieCountComparer.cs index 9444a3321..51f39a02f 100644 --- a/MediaBrowser.Server.Implementations/Sorting/MovieCountComparer.cs +++ b/MediaBrowser.Server.Implementations/Sorting/MovieCountComparer.cs @@ -24,7 +24,7 @@ namespace MediaBrowser.Server.Implementations.Sorting /// Gets or sets the user data repository. /// </summary> /// <value>The user data repository.</value> - public IUserDataRepository UserDataRepository { get; set; } + public IUserDataManager UserDataRepository { get; set; } /// <summary> /// Compares the specified x. diff --git a/MediaBrowser.Server.Implementations/Sorting/MusicVideoCountComparer.cs b/MediaBrowser.Server.Implementations/Sorting/MusicVideoCountComparer.cs index 3f578d33a..889658459 100644 --- a/MediaBrowser.Server.Implementations/Sorting/MusicVideoCountComparer.cs +++ b/MediaBrowser.Server.Implementations/Sorting/MusicVideoCountComparer.cs @@ -24,7 +24,7 @@ namespace MediaBrowser.Server.Implementations.Sorting /// Gets or sets the user data repository. /// </summary> /// <value>The user data repository.</value> - public IUserDataRepository UserDataRepository { get; set; } + public IUserDataManager UserDataRepository { get; set; } /// <summary> /// Compares the specified x. diff --git a/MediaBrowser.Server.Implementations/Sorting/PlayCountComparer.cs b/MediaBrowser.Server.Implementations/Sorting/PlayCountComparer.cs index d4c22e6e0..0d10c459f 100644 --- a/MediaBrowser.Server.Implementations/Sorting/PlayCountComparer.cs +++ b/MediaBrowser.Server.Implementations/Sorting/PlayCountComparer.cs @@ -53,7 +53,7 @@ namespace MediaBrowser.Server.Implementations.Sorting /// Gets or sets the user data repository. /// </summary> /// <value>The user data repository.</value> - public IUserDataRepository UserDataRepository { get; set; } + public IUserDataManager UserDataRepository { get; set; } /// <summary> /// Gets or sets the user manager. diff --git a/MediaBrowser.Server.Implementations/Sorting/SeriesCountComparer.cs b/MediaBrowser.Server.Implementations/Sorting/SeriesCountComparer.cs index f8c8c4bce..13d2932cb 100644 --- a/MediaBrowser.Server.Implementations/Sorting/SeriesCountComparer.cs +++ b/MediaBrowser.Server.Implementations/Sorting/SeriesCountComparer.cs @@ -24,7 +24,7 @@ namespace MediaBrowser.Server.Implementations.Sorting /// Gets or sets the user data repository. /// </summary> /// <value>The user data repository.</value> - public IUserDataRepository UserDataRepository { get; set; } + public IUserDataManager UserDataRepository { get; set; } /// <summary> /// Compares the specified x. diff --git a/MediaBrowser.Server.Implementations/Sorting/SongCountComparer.cs b/MediaBrowser.Server.Implementations/Sorting/SongCountComparer.cs index ac0547102..b12e1322a 100644 --- a/MediaBrowser.Server.Implementations/Sorting/SongCountComparer.cs +++ b/MediaBrowser.Server.Implementations/Sorting/SongCountComparer.cs @@ -24,7 +24,7 @@ namespace MediaBrowser.Server.Implementations.Sorting /// Gets or sets the user data repository. /// </summary> /// <value>The user data repository.</value> - public IUserDataRepository UserDataRepository { get; set; } + public IUserDataManager UserDataRepository { get; set; } /// <summary> /// Compares the specified x. diff --git a/MediaBrowser.Server.Implementations/Sorting/TrailerCountComparer.cs b/MediaBrowser.Server.Implementations/Sorting/TrailerCountComparer.cs index 2af2cdf9c..b6f67410a 100644 --- a/MediaBrowser.Server.Implementations/Sorting/TrailerCountComparer.cs +++ b/MediaBrowser.Server.Implementations/Sorting/TrailerCountComparer.cs @@ -24,7 +24,7 @@ namespace MediaBrowser.Server.Implementations.Sorting /// Gets or sets the user data repository. /// </summary> /// <value>The user data repository.</value> - public IUserDataRepository UserDataRepository { get; set; } + public IUserDataManager UserDataRepository { get; set; } /// <summary> /// Compares the specified x. diff --git a/MediaBrowser.ServerApplication/ApplicationHost.cs b/MediaBrowser.ServerApplication/ApplicationHost.cs index b54ca6e34..a61abe474 100644 --- a/MediaBrowser.ServerApplication/ApplicationHost.cs +++ b/MediaBrowser.ServerApplication/ApplicationHost.cs @@ -160,7 +160,7 @@ namespace MediaBrowser.ServerApplication /// Gets or sets the user data repository. /// </summary> /// <value>The user data repository.</value> - private IUserDataRepository UserDataRepository { get; set; } + private IUserDataManager UserDataManager { get; set; } private IUserRepository UserRepository { get; set; } internal IDisplayPreferencesRepository DisplayPreferencesRepository { get; set; } private IItemRepository ItemRepository { get; set; } @@ -238,8 +238,8 @@ namespace MediaBrowser.ServerApplication var mediaEncoderTask = RegisterMediaEncoder(); - UserDataRepository = new SqliteUserDataRepository(ApplicationPaths, JsonSerializer, LogManager); - RegisterSingleInstance(UserDataRepository); + UserDataManager = new UserDataManager(); + RegisterSingleInstance(UserDataManager); UserRepository = await GetUserRepository().ConfigureAwait(false); RegisterSingleInstance(UserRepository); @@ -253,7 +253,7 @@ namespace MediaBrowser.ServerApplication UserManager = new UserManager(Logger, ServerConfigurationManager, UserRepository); RegisterSingleInstance(UserManager); - LibraryManager = new LibraryManager(Logger, TaskManager, UserManager, ServerConfigurationManager, UserDataRepository, () => DirectoryWatchers); + LibraryManager = new LibraryManager(Logger, TaskManager, UserManager, ServerConfigurationManager, UserDataManager, () => DirectoryWatchers); RegisterSingleInstance(LibraryManager); DirectoryWatchers = new DirectoryWatchers(LogManager, TaskManager, LibraryManager, ServerConfigurationManager); @@ -264,7 +264,7 @@ namespace MediaBrowser.ServerApplication RegisterSingleInstance<ILibrarySearchEngine>(() => new LuceneSearchEngine(ApplicationPaths, LogManager, LibraryManager)); - SessionManager = new SessionManager(UserDataRepository, ServerConfigurationManager, Logger, UserRepository); + SessionManager = new SessionManager(UserDataManager, ServerConfigurationManager, Logger, UserRepository); RegisterSingleInstance(SessionManager); HttpServer = await _httpServerCreationTask.ConfigureAwait(false); @@ -279,7 +279,7 @@ namespace MediaBrowser.ServerApplication ImageProcessor = new ImageProcessor(Logger, ServerConfigurationManager.ApplicationPaths); RegisterSingleInstance(ImageProcessor); - DtoService = new DtoService(Logger, LibraryManager, UserManager, UserDataRepository, ItemRepository, ImageProcessor); + DtoService = new DtoService(Logger, LibraryManager, UserManager, UserDataManager, ItemRepository, ImageProcessor); RegisterSingleInstance(DtoService); LiveTvManager = new LiveTvManager(); @@ -372,9 +372,13 @@ namespace MediaBrowser.ServerApplication /// Configures the user data repositories. /// </summary> /// <returns>Task.</returns> - private Task ConfigureUserDataRepositories() + private async Task ConfigureUserDataRepositories() { - return UserDataRepository.Initialize(); + var repo = new SqliteUserDataRepository(ApplicationPaths, JsonSerializer, LogManager); + + await repo.Initialize().ConfigureAwait(false); + + ((UserDataManager) UserDataManager).Repository = repo; } /// <summary> diff --git a/Nuget/MediaBrowser.Common.Internal.nuspec b/Nuget/MediaBrowser.Common.Internal.nuspec index 9653ae70e..9308e6fb5 100644 --- a/Nuget/MediaBrowser.Common.Internal.nuspec +++ b/Nuget/MediaBrowser.Common.Internal.nuspec @@ -2,7 +2,7 @@ <package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd"> <metadata> <id>MediaBrowser.Common.Internal</id> - <version>3.0.213</version> + <version>3.0.214</version> <title>MediaBrowser.Common.Internal</title> <authors>Luke</authors> <owners>ebr,Luke,scottisafool</owners> @@ -12,7 +12,7 @@ <description>Contains common components shared by Media Browser Theater and Media Browser Server. Not intended for plugin developer consumption.</description> <copyright>Copyright © Media Browser 2013</copyright> <dependencies> - <dependency id="MediaBrowser.Common" version="3.0.213" /> + <dependency id="MediaBrowser.Common" version="3.0.214" /> <dependency id="NLog" version="2.0.1.2" /> <dependency id="ServiceStack.Text" version="3.9.58" /> <dependency id="SimpleInjector" version="2.3.2" /> diff --git a/Nuget/MediaBrowser.Common.nuspec b/Nuget/MediaBrowser.Common.nuspec index 556744ff1..4f2a88bc2 100644 --- a/Nuget/MediaBrowser.Common.nuspec +++ b/Nuget/MediaBrowser.Common.nuspec @@ -2,7 +2,7 @@ <package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd"> <metadata> <id>MediaBrowser.Common</id> - <version>3.0.213</version> + <version>3.0.214</version> <title>MediaBrowser.Common</title> <authors>Media Browser Team</authors> <owners>ebr,Luke,scottisafool</owners> diff --git a/Nuget/MediaBrowser.Server.Core.nuspec b/Nuget/MediaBrowser.Server.Core.nuspec index 761244fe8..f34d066b8 100644 --- a/Nuget/MediaBrowser.Server.Core.nuspec +++ b/Nuget/MediaBrowser.Server.Core.nuspec @@ -2,7 +2,7 @@ <package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"> <metadata> <id>MediaBrowser.Server.Core</id> - <version>3.0.213</version> + <version>3.0.214</version> <title>Media Browser.Server.Core</title> <authors>Media Browser Team</authors> <owners>ebr,Luke,scottisafool</owners> @@ -12,7 +12,7 @@ <description>Contains core components required to build plugins for Media Browser Server.</description> <copyright>Copyright © Media Browser 2013</copyright> <dependencies> - <dependency id="MediaBrowser.Common" version="3.0.213" /> + <dependency id="MediaBrowser.Common" version="3.0.214" /> </dependencies> </metadata> <files> |
