Browse Source

added user data manager, updated nuget

Luke Pulverenti 11 năm trước cách đây
mục cha
commit
9a4712cf22
42 tập tin đã thay đổi với 143 bổ sung67 xóa
  1. 2 2
      MediaBrowser.Api/AlbumsService.cs
  2. 2 2
      MediaBrowser.Api/GamesService.cs
  3. 2 2
      MediaBrowser.Api/MoviesService.cs
  4. 1 1
      MediaBrowser.Api/SimilarItemsHelper.cs
  5. 2 2
      MediaBrowser.Api/TrailersService.cs
  6. 2 2
      MediaBrowser.Api/TvShowsService.cs
  7. 1 1
      MediaBrowser.Api/UserLibrary/ArtistsService.cs
  8. 2 3
      MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs
  9. 1 1
      MediaBrowser.Api/UserLibrary/GameGenresService.cs
  10. 1 1
      MediaBrowser.Api/UserLibrary/GenresService.cs
  11. 2 2
      MediaBrowser.Api/UserLibrary/ItemByNameUserDataService.cs
  12. 3 3
      MediaBrowser.Api/UserLibrary/ItemsService.cs
  13. 1 1
      MediaBrowser.Api/UserLibrary/MusicGenresService.cs
  14. 1 1
      MediaBrowser.Api/UserLibrary/PersonsService.cs
  15. 1 1
      MediaBrowser.Api/UserLibrary/StudiosService.cs
  16. 2 2
      MediaBrowser.Api/UserLibrary/UserLibraryService.cs
  17. 1 1
      MediaBrowser.Api/UserLibrary/YearsService.cs
  18. 2 2
      MediaBrowser.Controller/Entities/BaseItem.cs
  19. 2 2
      MediaBrowser.Controller/Entities/Folder.cs
  20. 28 0
      MediaBrowser.Controller/Library/IUserDataManager.cs
  21. 1 0
      MediaBrowser.Controller/MediaBrowser.Controller.csproj
  22. 1 2
      MediaBrowser.Controller/Persistence/IUserDataRepository.cs
  23. 1 2
      MediaBrowser.Controller/Sorting/IUserBaseItemComparer.cs
  24. 3 3
      MediaBrowser.Server.Implementations/Dto/DtoService.cs
  25. 2 2
      MediaBrowser.Server.Implementations/Library/LibraryManager.cs
  26. 45 0
      MediaBrowser.Server.Implementations/Library/UserDataManager.cs
  27. 1 0
      MediaBrowser.Server.Implementations/MediaBrowser.Server.Implementations.csproj
  28. 2 2
      MediaBrowser.Server.Implementations/Session/SessionManager.cs
  29. 1 1
      MediaBrowser.Server.Implementations/Sorting/AlbumCountComparer.cs
  30. 1 1
      MediaBrowser.Server.Implementations/Sorting/DatePlayedComparer.cs
  31. 1 1
      MediaBrowser.Server.Implementations/Sorting/EpisodeCountComparer.cs
  32. 2 2
      MediaBrowser.Server.Implementations/Sorting/IsUnplayedComparer.cs
  33. 1 1
      MediaBrowser.Server.Implementations/Sorting/MovieCountComparer.cs
  34. 1 1
      MediaBrowser.Server.Implementations/Sorting/MusicVideoCountComparer.cs
  35. 1 1
      MediaBrowser.Server.Implementations/Sorting/PlayCountComparer.cs
  36. 1 1
      MediaBrowser.Server.Implementations/Sorting/SeriesCountComparer.cs
  37. 1 1
      MediaBrowser.Server.Implementations/Sorting/SongCountComparer.cs
  38. 1 1
      MediaBrowser.Server.Implementations/Sorting/TrailerCountComparer.cs
  39. 12 8
      MediaBrowser.ServerApplication/ApplicationHost.cs
  40. 2 2
      Nuget/MediaBrowser.Common.Internal.nuspec
  41. 1 1
      Nuget/MediaBrowser.Common.nuspec
  42. 2 2
      Nuget/MediaBrowser.Server.Core.nuspec

+ 2 - 2
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;

+ 2 - 2
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;

+ 2 - 2
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;

+ 1 - 1
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;
 

+ 2 - 2
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;

+ 2 - 2
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;

+ 1 - 1
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)
         {
         }

+ 2 - 3
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;

+ 1 - 1
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)
         {
         }

+ 1 - 1
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)
         {
         }

+ 2 - 2
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;

+ 3 - 3
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)
             {

+ 1 - 1
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)
         {
         }

+ 1 - 1
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)
         {
         }

+ 1 - 1
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)
         {
         }

+ 2 - 2
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;

+ 1 - 1
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)
         {
         }

+ 2 - 2
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)
             {

+ 2 - 2
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));

+ 28 - 0
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);
+    }
+}

+ 1 - 0
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" />

+ 1 - 2
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.

+ 1 - 2
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; }
     }
 }

+ 3 - 3
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;

+ 2 - 2
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;

+ 45 - 0
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);
+        }
+    }
+}

+ 1 - 0
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" />

+ 2 - 2
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;

+ 1 - 1
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.

+ 1 - 1
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.

+ 1 - 1
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.

+ 2 - 2
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.

+ 1 - 1
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.

+ 1 - 1
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.

+ 1 - 1
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.

+ 1 - 1
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.

+ 1 - 1
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.

+ 1 - 1
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.

+ 12 - 8
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>

+ 2 - 2
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" />

+ 1 - 1
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>

+ 2 - 2
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>