From e2562879d86aafc1063e37bfd353c22309e8e237 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Tue, 2 Apr 2013 15:25:16 -0400 Subject: Moved userdata to user manager to resolve concurrency issues. must delete userdata and displaypreferences db files. --- MediaBrowser.Controller/Library/DtoBuilder.cs | 15 ++++++------- MediaBrowser.Controller/Library/IUserManager.cs | 29 +++++++++++++++++-------- 2 files changed, 27 insertions(+), 17 deletions(-) (limited to 'MediaBrowser.Controller/Library') diff --git a/MediaBrowser.Controller/Library/DtoBuilder.cs b/MediaBrowser.Controller/Library/DtoBuilder.cs index 419d3527d..d9244c64c 100644 --- a/MediaBrowser.Controller/Library/DtoBuilder.cs +++ b/MediaBrowser.Controller/Library/DtoBuilder.cs @@ -167,12 +167,9 @@ namespace MediaBrowser.Controller.Library { if (fields.Contains(ItemFields.UserData)) { - var userData = item.GetUserData(user, false); + var userData = await _userManager.GetUserData(user.Id, item.UserDataId).ConfigureAwait(false); - if (userData != null) - { - dto.UserData = GetUserItemDataDto(userData); - } + dto.UserData = GetUserItemDataDto(userData); } if (item.IsFolder && fields.Contains(ItemFields.DisplayPreferences)) @@ -191,7 +188,7 @@ namespace MediaBrowser.Controller.Library // Skip sorting since all we want is a count dto.ChildCount = folder.GetChildren(user).Count(); - SetSpecialCounts(folder, user, dto); + await SetSpecialCounts(folder, user, dto, _userManager).ConfigureAwait(false); } } } @@ -488,7 +485,9 @@ namespace MediaBrowser.Controller.Library /// The folder. /// The user. /// The dto. - private static void SetSpecialCounts(Folder folder, User user, BaseItemDto dto) + /// The user manager. + /// Task. + private static async Task SetSpecialCounts(Folder folder, User user, BaseItemDto dto, IUserManager userManager) { var rcentlyAddedItemCount = 0; var recursiveItemCount = 0; @@ -498,7 +497,7 @@ namespace MediaBrowser.Controller.Library // Loop through each recursive child foreach (var child in folder.GetRecursiveChildren(user).Where(i => !i.IsFolder)) { - var userdata = child.GetUserData(user, false); + var userdata = await userManager.GetUserData(user.Id, child.UserDataId).ConfigureAwait(false); recursiveItemCount++; diff --git a/MediaBrowser.Controller/Library/IUserManager.cs b/MediaBrowser.Controller/Library/IUserManager.cs index 0e93c15cf..8374c6880 100644 --- a/MediaBrowser.Controller/Library/IUserManager.cs +++ b/MediaBrowser.Controller/Library/IUserManager.cs @@ -1,11 +1,11 @@ using MediaBrowser.Common.Events; using MediaBrowser.Controller.Entities; using MediaBrowser.Model.Connectivity; +using MediaBrowser.Model.Entities; using System; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; -using MediaBrowser.Model.Entities; namespace MediaBrowser.Controller.Library { @@ -157,14 +157,6 @@ namespace MediaBrowser.Controller.Library /// Task OnPlaybackStopped(User user, BaseItem item, long? positionTicks, string clientType, string deviceId, string deviceName); - /// - /// Saves user data for an item - /// - /// The user. - /// The item. - /// The data. - Task SaveUserDataForItem(User user, BaseItem item, UserItemData data); - /// /// Resets the password. /// @@ -180,6 +172,25 @@ namespace MediaBrowser.Controller.Library /// Task. Task ChangePassword(User user, string newPassword); + /// + /// Saves display preferences for an item + /// + /// The user id. + /// The user data id. + /// The user data. + /// The cancellation token. + /// Task. + Task SaveUserData(Guid userId, Guid userDataId, UserItemData userData, + CancellationToken cancellationToken); + + /// + /// Gets the display preferences. + /// + /// The user id. + /// The user data id. + /// Task{DisplayPreferences}. + Task GetUserData(Guid userId, Guid userDataId); + /// /// Gets the display preferences. /// -- cgit v1.2.3