mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-07-16 11:13:32 +01:00
update user data queries
This commit is contained in:
@@ -140,6 +140,54 @@ namespace MediaBrowser.Server.Implementations.Library
|
||||
return Repository.GetAllUserData(userId);
|
||||
}
|
||||
|
||||
public UserItemData GetUserData(Guid userId, List<string> keys)
|
||||
{
|
||||
if (userId == Guid.Empty)
|
||||
{
|
||||
throw new ArgumentNullException("userId");
|
||||
}
|
||||
if (keys == null)
|
||||
{
|
||||
throw new ArgumentNullException("keys");
|
||||
}
|
||||
|
||||
lock (_userData)
|
||||
{
|
||||
foreach (var key in keys)
|
||||
{
|
||||
var cacheKey = GetCacheKey(userId, key);
|
||||
UserItemData value;
|
||||
if (_userData.TryGetValue(cacheKey, out value))
|
||||
{
|
||||
return value;
|
||||
}
|
||||
|
||||
value = Repository.GetUserData(userId, key);
|
||||
|
||||
if (value != null)
|
||||
{
|
||||
_userData[cacheKey] = value;
|
||||
return value;
|
||||
}
|
||||
}
|
||||
|
||||
if (keys.Count > 0)
|
||||
{
|
||||
var key = keys[0];
|
||||
var cacheKey = GetCacheKey(userId, key);
|
||||
var userdata = new UserItemData
|
||||
{
|
||||
UserId = userId,
|
||||
Key = key
|
||||
};
|
||||
_userData[cacheKey] = userdata;
|
||||
return userdata;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the user data.
|
||||
/// </summary>
|
||||
@@ -166,27 +214,22 @@ namespace MediaBrowser.Server.Implementations.Library
|
||||
return value;
|
||||
}
|
||||
|
||||
value = GetUserDataFromRepository(userId, key);
|
||||
value = Repository.GetUserData(userId, key);
|
||||
|
||||
if (value == null)
|
||||
{
|
||||
value = new UserItemData
|
||||
{
|
||||
UserId = userId,
|
||||
Key = key
|
||||
};
|
||||
}
|
||||
|
||||
_userData[cacheKey] = value;
|
||||
return value;
|
||||
}
|
||||
}
|
||||
|
||||
private UserItemData GetUserDataFromRepository(Guid userId, string key)
|
||||
{
|
||||
var data = Repository.GetUserData(userId, key);
|
||||
|
||||
if (data == null)
|
||||
{
|
||||
data = new UserItemData
|
||||
{
|
||||
UserId = userId,
|
||||
Key = key
|
||||
};
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the internal key.
|
||||
/// </summary>
|
||||
@@ -200,22 +243,22 @@ namespace MediaBrowser.Server.Implementations.Library
|
||||
|
||||
public UserItemData GetUserData(IHasUserData user, IHasUserData item)
|
||||
{
|
||||
return GetUserData(user.Id, item.GetUserDataKeys().First());
|
||||
return GetUserData(user.Id, item);
|
||||
}
|
||||
|
||||
public UserItemData GetUserData(string userId, IHasUserData item)
|
||||
{
|
||||
return GetUserData(userId, item.GetUserDataKeys().First());
|
||||
return GetUserData(new Guid(userId), item);
|
||||
}
|
||||
|
||||
public UserItemData GetUserData(Guid userId, IHasUserData item)
|
||||
{
|
||||
return GetUserData(userId, item.GetUserDataKeys().First());
|
||||
return GetUserData(userId, item.GetUserDataKeys());
|
||||
}
|
||||
|
||||
public UserItemDataDto GetUserDataDto(IHasUserData item, User user)
|
||||
{
|
||||
var userData = GetUserData(user.Id, item.GetUserDataKeys().First());
|
||||
var userData = GetUserData(user.Id, item);
|
||||
var dto = GetUserItemDataDto(userData);
|
||||
|
||||
item.FillUserDataDtoValues(dto, userData, user);
|
||||
@@ -302,10 +345,5 @@ namespace MediaBrowser.Server.Implementations.Library
|
||||
|
||||
return playedToCompletion;
|
||||
}
|
||||
|
||||
public UserItemData GetUserData(string userId, string key)
|
||||
{
|
||||
return GetUserData(new Guid(userId), key);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user