moved displaypreferences to usermanager to solve concurrency issues

This commit is contained in:
Luke Pulverenti
2013-04-02 13:37:49 -04:00
parent dcc057f324
commit b4dd8a2106
17 changed files with 193 additions and 229 deletions

View File

@@ -1,4 +1,5 @@
using MediaBrowser.Controller.Entities;
using System.Threading;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.Movies;
using MediaBrowser.Controller.Library;
using MediaBrowser.Model.Connectivity;
@@ -385,7 +386,7 @@ namespace MediaBrowser.Api.UserLibrary
var movie = (Movie)item;
var dtoBuilder = new DtoBuilder(Logger, _libraryManager);
var dtoBuilder = new DtoBuilder(Logger, _libraryManager, _userManager);
var items = movie.SpecialFeatures.Select(i => dtoBuilder.GetBaseItemDto(i, user, fields)).AsParallel().Select(t => t.Result).ToList();
@@ -406,7 +407,7 @@ namespace MediaBrowser.Api.UserLibrary
// Get everything
var fields = Enum.GetNames(typeof(ItemFields)).Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true)).ToList();
var dtoBuilder = new DtoBuilder(Logger, _libraryManager);
var dtoBuilder = new DtoBuilder(Logger, _libraryManager, _userManager);
var items = item.LocalTrailers.Select(i => dtoBuilder.GetBaseItemDto(i, user, fields)).AsParallel().Select(t => t.Result).ToList();
@@ -427,7 +428,7 @@ namespace MediaBrowser.Api.UserLibrary
// Get everything
var fields = Enum.GetNames(typeof(ItemFields)).Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true)).ToList();
var dtoBuilder = new DtoBuilder(Logger, _libraryManager);
var dtoBuilder = new DtoBuilder(Logger, _libraryManager, _userManager);
var result = dtoBuilder.GetBaseItemDto(item, user, fields).Result;
@@ -443,7 +444,7 @@ namespace MediaBrowser.Api.UserLibrary
// Get everything
var fields = Enum.GetNames(typeof(ItemFields)).Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true)).ToList();
var dtoBuilder = new DtoBuilder(Logger, _libraryManager);
var dtoBuilder = new DtoBuilder(Logger, _libraryManager, _userManager);
var result = dtoBuilder.GetBaseItemDto(item, user, fields).Result;
@@ -486,7 +487,7 @@ namespace MediaBrowser.Api.UserLibrary
// Serialize to json and then back so that the core doesn't see the request dto type
var displayPreferences = _jsonSerializer.DeserializeFromString<DisplayPreferences>(_jsonSerializer.SerializeToString(request));
var task = _libraryManager.SaveDisplayPreferencesForFolder(user, folder, displayPreferences);
var task = _userManager.SaveDisplayPreferences(user.Id, folder.DisplayPreferencesId, displayPreferences, CancellationToken.None);
Task.WaitAll(task);
}