diff options
Diffstat (limited to 'Emby.Server.Implementations/Library')
| -rw-r--r-- | Emby.Server.Implementations/Library/LibraryManager.cs | 4 | ||||
| -rw-r--r-- | Emby.Server.Implementations/Library/UserDataManager.cs | 76 | ||||
| -rw-r--r-- | Emby.Server.Implementations/Library/UserViewManager.cs | 19 |
3 files changed, 24 insertions, 75 deletions
diff --git a/Emby.Server.Implementations/Library/LibraryManager.cs b/Emby.Server.Implementations/Library/LibraryManager.cs index cbded1ec6..48d24385e 100644 --- a/Emby.Server.Implementations/Library/LibraryManager.cs +++ b/Emby.Server.Implementations/Library/LibraryManager.cs @@ -669,7 +669,7 @@ namespace Emby.Server.Implementations.Library if (parent is not null) { - var multiItemResolvers = resolvers is null ? MultiItemResolvers : resolvers.OfType<IMultiItemResolver>().ToArray(); + var multiItemResolvers = resolvers is null ? MultiItemResolvers : resolvers.OfType<IMultiItemResolver>(); foreach (var resolver in multiItemResolvers) { @@ -1530,7 +1530,7 @@ namespace Emby.Server.Implementations.Library { var userViews = UserViewManager.GetUserViews(new UserViewQuery { - UserId = user.Id, + User = user, IncludeHidden = true, IncludeExternalContent = allowExternalContent }); diff --git a/Emby.Server.Implementations/Library/UserDataManager.cs b/Emby.Server.Implementations/Library/UserDataManager.cs index 8beeb8041..62d22b23f 100644 --- a/Emby.Server.Implementations/Library/UserDataManager.cs +++ b/Emby.Server.Implementations/Library/UserDataManager.cs @@ -1,10 +1,7 @@ -#nullable disable - -#pragma warning disable CS1591 - using System; using System.Collections.Concurrent; using System.Collections.Generic; +using System.Diagnostics; using System.Globalization; using System.Threading; using Jellyfin.Data.Entities; @@ -32,6 +29,12 @@ namespace Emby.Server.Implementations.Library private readonly IUserManager _userManager; private readonly IUserDataRepository _repository; + /// <summary> + /// Initializes a new instance of the <see cref="UserDataManager"/> class. + /// </summary> + /// <param name="config">Instance of the <see cref="IServerConfigurationManager"/> interface.</param> + /// <param name="userManager">Instance of the <see cref="IUserManager"/> interface.</param> + /// <param name="repository">Instance of the <see cref="IUserDataRepository"/> interface.</param> public UserDataManager( IServerConfigurationManager config, IUserManager userManager, @@ -42,15 +45,10 @@ namespace Emby.Server.Implementations.Library _repository = repository; } - public event EventHandler<UserDataSaveEventArgs> UserDataSaved; - - public void SaveUserData(Guid userId, BaseItem item, UserItemData userData, UserDataSaveReason reason, CancellationToken cancellationToken) - { - var user = _userManager.GetUserById(userId); - - SaveUserData(user, item, userData, reason, cancellationToken); - } + /// <inheritdoc /> + public event EventHandler<UserDataSaveEventArgs>? UserDataSaved; + /// <inheritdoc /> public void SaveUserData(User user, BaseItem item, UserItemData userData, UserDataSaveReason reason, CancellationToken cancellationToken) { ArgumentNullException.ThrowIfNull(userData); @@ -81,6 +79,7 @@ namespace Emby.Server.Implementations.Library }); } + /// <inheritdoc /> public void SaveUserData(User user, BaseItem item, UpdateUserItemDataDto userDataDto, UserDataSaveReason reason) { ArgumentNullException.ThrowIfNull(user); @@ -128,39 +127,7 @@ namespace Emby.Server.Implementations.Library SaveUserData(user, item, userData, reason, CancellationToken.None); } - /// <summary> - /// Save the provided user data for the given user. Batch operation. Does not fire any events or update the cache. - /// </summary> - /// <param name="userId">The user id.</param> - /// <param name="userData">The user item data.</param> - /// <param name="cancellationToken">The cancellation token.</param> - public void SaveAllUserData(Guid userId, UserItemData[] userData, CancellationToken cancellationToken) - { - var user = _userManager.GetUserById(userId); - - _repository.SaveAllUserData(user.InternalId, userData, cancellationToken); - } - - /// <summary> - /// Retrieve all user data for the given user. - /// </summary> - /// <param name="userId">The user id.</param> - /// <returns>A <see cref="List{UserItemData}"/> containing all of the user's item data.</returns> - public List<UserItemData> GetAllUserData(Guid userId) - { - var user = _userManager.GetUserById(userId); - - return _repository.GetAllUserData(user.InternalId); - } - - public UserItemData GetUserData(Guid userId, Guid itemId, List<string> keys) - { - var user = _userManager.GetUserById(userId); - - return GetUserData(user, itemId, keys); - } - - public UserItemData GetUserData(User user, Guid itemId, List<string> keys) + private UserItemData GetUserData(User user, Guid itemId, List<string> keys) { var userId = user.InternalId; @@ -186,7 +153,7 @@ namespace Emby.Server.Implementations.Library }; } - return null; + throw new UnreachableException(); } /// <summary> @@ -198,27 +165,18 @@ namespace Emby.Server.Implementations.Library return internalUserId.ToString(CultureInfo.InvariantCulture) + "-" + itemId.ToString("N", CultureInfo.InvariantCulture); } + /// <inheritdoc /> public UserItemData GetUserData(User user, BaseItem item) { return GetUserData(user, item.Id, item.GetUserDataKeys()); } - public UserItemData GetUserData(Guid userId, BaseItem item) - { - return GetUserData(userId, item.Id, item.GetUserDataKeys()); - } - + /// <inheritdoc /> public UserItemDataDto GetUserDataDto(BaseItem item, User user) - { - var userData = GetUserData(user, item); - var dto = GetUserItemDataDto(userData); - - item.FillUserDataDtoValues(dto, userData, null, user, new DtoOptions()); - return dto; - } + => GetUserDataDto(item, null, user, new DtoOptions()); /// <inheritdoc /> - public UserItemDataDto GetUserDataDto(BaseItem item, BaseItemDto itemDto, User user, DtoOptions options) + public UserItemDataDto GetUserDataDto(BaseItem item, BaseItemDto? itemDto, User user, DtoOptions options) { var userData = GetUserData(user, item); var dto = GetUserItemDataDto(userData); diff --git a/Emby.Server.Implementations/Library/UserViewManager.cs b/Emby.Server.Implementations/Library/UserViewManager.cs index d9a559014..e9cf47d46 100644 --- a/Emby.Server.Implementations/Library/UserViewManager.cs +++ b/Emby.Server.Implementations/Library/UserViewManager.cs @@ -16,7 +16,6 @@ using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Library; using MediaBrowser.Controller.LiveTv; using MediaBrowser.Model.Channels; -using MediaBrowser.Model.Entities; using MediaBrowser.Model.Globalization; using MediaBrowser.Model.Library; using MediaBrowser.Model.Querying; @@ -27,17 +26,15 @@ namespace Emby.Server.Implementations.Library { private readonly ILibraryManager _libraryManager; private readonly ILocalizationManager _localizationManager; - private readonly IUserManager _userManager; private readonly IChannelManager _channelManager; private readonly ILiveTvManager _liveTvManager; private readonly IServerConfigurationManager _config; - public UserViewManager(ILibraryManager libraryManager, ILocalizationManager localizationManager, IUserManager userManager, IChannelManager channelManager, ILiveTvManager liveTvManager, IServerConfigurationManager config) + public UserViewManager(ILibraryManager libraryManager, ILocalizationManager localizationManager, IChannelManager channelManager, ILiveTvManager liveTvManager, IServerConfigurationManager config) { _libraryManager = libraryManager; _localizationManager = localizationManager; - _userManager = userManager; _channelManager = channelManager; _liveTvManager = liveTvManager; _config = config; @@ -45,11 +42,7 @@ namespace Emby.Server.Implementations.Library public Folder[] GetUserViews(UserViewQuery query) { - var user = _userManager.GetUserById(query.UserId); - if (user is null) - { - throw new ArgumentException("User id specified in the query does not exist.", nameof(query)); - } + var user = query.User; var folders = _libraryManager.GetUserRootFolder() .GetChildren(user, true) @@ -125,14 +118,14 @@ namespace Emby.Server.Implementations.Library { var channelResult = _channelManager.GetChannelsInternalAsync(new ChannelQuery { - UserId = query.UserId + UserId = user.Id }).GetAwaiter().GetResult(); var channels = channelResult.Items; list.AddRange(channels); - if (_liveTvManager.GetEnabledUsers().Select(i => i.Id).Contains(query.UserId)) + if (_liveTvManager.GetEnabledUsers().Select(i => i.Id).Contains(user.Id)) { list.Add(_liveTvManager.GetInternalLiveTvFolder(CancellationToken.None)); } @@ -207,9 +200,7 @@ namespace Emby.Server.Implementations.Library public List<Tuple<BaseItem, List<BaseItem>>> GetLatestItems(LatestItemsQuery request, DtoOptions options) { - var user = _userManager.GetUserById(request.UserId); - - var libraryItems = GetItemsForLatestItems(user, request, options); + var libraryItems = GetItemsForLatestItems(request.User, request, options); var list = new List<Tuple<BaseItem, List<BaseItem>>>(); |
