diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-04-02 13:37:49 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-04-02 13:37:49 -0400 |
| commit | b4dd8a210629bc74445f106e2379b986af9520c5 (patch) | |
| tree | 69dfb0fb565f3e2f47fad029fda11e24d75b54c6 /MediaBrowser.Controller/Library | |
| parent | dcc057f3242fb44a15006e5b13a2c7a2662dd2cd (diff) | |
moved displaypreferences to usermanager to solve concurrency issues
Diffstat (limited to 'MediaBrowser.Controller/Library')
| -rw-r--r-- | MediaBrowser.Controller/Library/DtoBuilder.cs | 16 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Library/ILibraryManager.cs | 9 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Library/IUserManager.cs | 20 |
3 files changed, 30 insertions, 15 deletions
diff --git a/MediaBrowser.Controller/Library/DtoBuilder.cs b/MediaBrowser.Controller/Library/DtoBuilder.cs index 36c7eba1f..419d3527d 100644 --- a/MediaBrowser.Controller/Library/DtoBuilder.cs +++ b/MediaBrowser.Controller/Library/DtoBuilder.cs @@ -28,11 +28,13 @@ namespace MediaBrowser.Controller.Library private readonly ILogger _logger; private readonly ILibraryManager _libraryManager; + private readonly IUserManager _userManager; - public DtoBuilder(ILogger logger, ILibraryManager libraryManager) + public DtoBuilder(ILogger logger, ILibraryManager libraryManager, IUserManager userManager) { _logger = logger; _libraryManager = libraryManager; + _userManager = userManager; } /// <summary> @@ -141,9 +143,9 @@ namespace MediaBrowser.Controller.Library tasks.Add(AttachPeople(dto, item)); } - AttachBasicFields(dto, item, fields); + tasks.Add(AttachUserSpecificInfo(dto, item, user, fields)); - AttachUserSpecificInfo(dto, item, user, fields); + AttachBasicFields(dto, item, fields); // Make sure all the tasks we kicked off have completed. if (tasks.Count > 0) @@ -161,7 +163,7 @@ namespace MediaBrowser.Controller.Library /// <param name="item">The item.</param> /// <param name="user">The user.</param> /// <param name="fields">The fields.</param> - private void AttachUserSpecificInfo(BaseItemDto dto, BaseItem item, User user, List<ItemFields> fields) + private async Task AttachUserSpecificInfo(BaseItemDto dto, BaseItem item, User user, List<ItemFields> fields) { if (fields.Contains(ItemFields.UserData)) { @@ -175,7 +177,9 @@ namespace MediaBrowser.Controller.Library if (item.IsFolder && fields.Contains(ItemFields.DisplayPreferences)) { - dto.DisplayPreferences = ((Folder)item).GetDisplayPreferences(user, false) ?? new DisplayPreferences { UserId = user.Id }; + var displayPreferencesId = ((Folder) item).DisplayPreferencesId; + + dto.DisplayPreferences = await _userManager.GetDisplayPreferences(user.Id, displayPreferencesId).ConfigureAwait(false); } if (item.IsFolder) @@ -191,7 +195,7 @@ namespace MediaBrowser.Controller.Library } } } - + /// <summary> /// Attaches the primary image aspect ratio. /// </summary> diff --git a/MediaBrowser.Controller/Library/ILibraryManager.cs b/MediaBrowser.Controller/Library/ILibraryManager.cs index 1b9d2f4b2..da2f46abb 100644 --- a/MediaBrowser.Controller/Library/ILibraryManager.cs +++ b/MediaBrowser.Controller/Library/ILibraryManager.cs @@ -108,15 +108,6 @@ namespace MediaBrowser.Controller.Library Task ValidateMediaLibrary(IProgress<double> progress, CancellationToken cancellationToken); /// <summary> - /// Saves display preferences for a Folder - /// </summary> - /// <param name="user">The user.</param> - /// <param name="folder">The folder.</param> - /// <param name="data">The data.</param> - /// <returns>Task.</returns> - Task SaveDisplayPreferencesForFolder(User user, Folder folder, DisplayPreferences data); - - /// <summary> /// Gets the default view. /// </summary> /// <returns>IEnumerable{VirtualFolderInfo}.</returns> diff --git a/MediaBrowser.Controller/Library/IUserManager.cs b/MediaBrowser.Controller/Library/IUserManager.cs index 229e4cb76..0e93c15cf 100644 --- a/MediaBrowser.Controller/Library/IUserManager.cs +++ b/MediaBrowser.Controller/Library/IUserManager.cs @@ -5,6 +5,7 @@ using System; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; +using MediaBrowser.Model.Entities; namespace MediaBrowser.Controller.Library { @@ -178,5 +179,24 @@ namespace MediaBrowser.Controller.Library /// <param name="newPassword">The new password.</param> /// <returns>Task.</returns> Task ChangePassword(User user, string newPassword); + + /// <summary> + /// Gets the display preferences. + /// </summary> + /// <param name="userId">The user id.</param> + /// <param name="displayPreferencesId">The display preferences id.</param> + /// <returns>DisplayPreferences.</returns> + Task<DisplayPreferences> GetDisplayPreferences(Guid userId, Guid displayPreferencesId); + + /// <summary> + /// Saves display preferences for an item + /// </summary> + /// <param name="userId">The user id.</param> + /// <param name="displayPreferencesId">The display preferences id.</param> + /// <param name="displayPreferences">The display preferences.</param> + /// <param name="cancellationToken">The cancellation token.</param> + /// <returns>Task.</returns> + Task SaveDisplayPreferences(Guid userId, Guid displayPreferencesId, DisplayPreferences displayPreferences, + CancellationToken cancellationToken); } } |
