Moved userdata to user manager to resolve concurrency issues. must delete userdata and displaypreferences db files.

This commit is contained in:
Luke Pulverenti
2013-04-02 15:25:16 -04:00
parent b4dd8a2106
commit e2562879d8
13 changed files with 208 additions and 209 deletions

View File

@@ -241,12 +241,15 @@ namespace MediaBrowser.Api.UserLibrary
/// <returns>IEnumerable{BaseItem}.</returns>
private IEnumerable<BaseItem> ApplyFilter(IEnumerable<BaseItem> items, ItemFilter filter, User user)
{
// Avoids implicitly captured closure
var currentUser = user;
switch (filter)
{
case ItemFilter.Likes:
return items.Where(item =>
{
var userdata = item.GetUserData(user, false);
var userdata = _userManager.GetUserData(user.Id, item.UserDataId).Result;
return userdata != null && userdata.Likes.HasValue && userdata.Likes.Value;
});
@@ -254,7 +257,7 @@ namespace MediaBrowser.Api.UserLibrary
case ItemFilter.Dislikes:
return items.Where(item =>
{
var userdata = item.GetUserData(user, false);
var userdata = _userManager.GetUserData(user.Id, item.UserDataId).Result;
return userdata != null && userdata.Likes.HasValue && !userdata.Likes.Value;
});
@@ -262,18 +265,18 @@ namespace MediaBrowser.Api.UserLibrary
case ItemFilter.IsFavorite:
return items.Where(item =>
{
var userdata = item.GetUserData(user, false);
var userdata = _userManager.GetUserData(user.Id, item.UserDataId).Result;
return userdata != null && userdata.IsFavorite;
});
case ItemFilter.IsRecentlyAdded:
return items.Where(item => item.IsRecentlyAdded(user));
return items.Where(item => item.IsRecentlyAdded(currentUser));
case ItemFilter.IsResumable:
return items.Where(item =>
{
var userdata = item.GetUserData(user, false);
var userdata = _userManager.GetUserData(user.Id, item.UserDataId).Result;
return userdata != null && userdata.PlaybackPositionTicks > 0;
});
@@ -281,7 +284,7 @@ namespace MediaBrowser.Api.UserLibrary
case ItemFilter.IsPlayed:
return items.Where(item =>
{
var userdata = item.GetUserData(user, false);
var userdata = _userManager.GetUserData(user.Id, item.UserDataId).Result;
return userdata != null && userdata.PlayCount > 0;
});
@@ -289,7 +292,7 @@ namespace MediaBrowser.Api.UserLibrary
case ItemFilter.IsUnplayed:
return items.Where(item =>
{
var userdata = item.GetUserData(user, false);
var userdata = _userManager.GetUserData(user.Id, item.UserDataId).Result;
return userdata == null || userdata.PlayCount == 0;
});