From 1be6a836fb2e13a46ea23f06a9651a89853c527d Mon Sep 17 00:00:00 2001 From: Eric Reed Date: Sat, 20 Sep 2014 18:14:16 -0400 Subject: [PATCH] Expose new methods on UserDataManager --- .../Library/IUserDataManager.cs | 20 ++++++- .../Library/UserDataManager.cs | 52 ++++++++++++++++++- 2 files changed, 70 insertions(+), 2 deletions(-) diff --git a/MediaBrowser.Controller/Library/IUserDataManager.cs b/MediaBrowser.Controller/Library/IUserDataManager.cs index 9db91e7f22..226f77525b 100644 --- a/MediaBrowser.Controller/Library/IUserDataManager.cs +++ b/MediaBrowser.Controller/Library/IUserDataManager.cs @@ -1,4 +1,5 @@ -using MediaBrowser.Controller.Entities; +using System.Collections.Generic; +using MediaBrowser.Controller.Entities; using MediaBrowser.Model.Dto; using MediaBrowser.Model.Entities; using System; @@ -43,5 +44,22 @@ namespace MediaBrowser.Controller.Library /// The user. /// UserItemDataDto. UserItemDataDto GetUserDataDto(IHasUserData item, User user); + + /// + /// Get all user data for the given user + /// + /// + /// + IEnumerable GetAllUserData(Guid userId); + + /// + /// Save the all provided user data for the given user + /// + /// + /// + /// + /// + Task SaveAllUserData(Guid userId, IEnumerable userData, CancellationToken cancellationToken); + } } diff --git a/MediaBrowser.Server.Implementations/Library/UserDataManager.cs b/MediaBrowser.Server.Implementations/Library/UserDataManager.cs index d3030f31f9..2480d69771 100644 --- a/MediaBrowser.Server.Implementations/Library/UserDataManager.cs +++ b/MediaBrowser.Server.Implementations/Library/UserDataManager.cs @@ -1,4 +1,5 @@ -using MediaBrowser.Common.Events; +using System.Collections.Generic; +using MediaBrowser.Common.Events; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Persistence; @@ -96,6 +97,55 @@ namespace MediaBrowser.Server.Implementations.Library }, _logger); } + /// + /// Save the provided user data for the given user. Batch operation. Does not fire any events or update the cache. + /// + /// + /// + /// + /// + public async Task SaveAllUserData(Guid userId, IEnumerable userData, CancellationToken cancellationToken) + { + if (userData == null) + { + throw new ArgumentNullException("userData"); + } + if (userId == Guid.Empty) + { + throw new ArgumentNullException("userId"); + } + + cancellationToken.ThrowIfCancellationRequested(); + + try + { + await Repository.SaveAllUserData(userId, userData, cancellationToken).ConfigureAwait(false); + + } + catch (Exception ex) + { + _logger.ErrorException("Error saving user data", ex); + + throw; + } + + } + + /// + /// Retrieve all user data for the given user + /// + /// + /// + public IEnumerable GetAllUserData(Guid userId) + { + if (userId == Guid.Empty) + { + throw new ArgumentNullException("userId"); + } + + return Repository.GetAllUserData(userId); + } + /// /// Gets the user data. ///