aboutsummaryrefslogtreecommitdiff
path: root/Emby.Server.Implementations/Library/UserDataManager.cs
diff options
context:
space:
mode:
authorArabCoders <admin@arabcoders.org>2023-11-13 17:32:24 +0300
committerArabCoders <admin@arabcoders.org>2023-11-13 17:32:24 +0300
commit07db2025a177bf5bed1cc898426a2442803ae151 (patch)
treefc0dfbd9fa121d4ba4f5d4f47e30bd68ac31a1e6 /Emby.Server.Implementations/Library/UserDataManager.cs
parentfaa036aa7b696fd5091e52fd2bed6ed67ca63481 (diff)
Refactored the code to not use reflection.
Diffstat (limited to 'Emby.Server.Implementations/Library/UserDataManager.cs')
-rw-r--r--Emby.Server.Implementations/Library/UserDataManager.cs45
1 files changed, 28 insertions, 17 deletions
diff --git a/Emby.Server.Implementations/Library/UserDataManager.cs b/Emby.Server.Implementations/Library/UserDataManager.cs
index 0d67f2cda..585fdd4f0 100644
--- a/Emby.Server.Implementations/Library/UserDataManager.cs
+++ b/Emby.Server.Implementations/Library/UserDataManager.cs
@@ -91,28 +91,39 @@ namespace Emby.Server.Implementations.Library
var userData = GetUserData(user, item);
- var parentProperties = userDataDto.GetType().GetProperties();
- var childProperties = userData.GetType().GetProperties();
+ if (userDataDto.PlaybackPositionTicks.HasValue)
+ {
+ userData.PlaybackPositionTicks = userDataDto.PlaybackPositionTicks.Value;
+ }
- foreach (var parentProperty in parentProperties)
+ if (userDataDto.PlayCount.HasValue)
{
- foreach (var childProperty in childProperties)
- {
- if (parentProperty.Name != childProperty.Name)
- {
- continue;
- }
+ userData.PlayCount = userDataDto.PlayCount.Value;
+ }
- var value = parentProperty.GetValue(userDataDto, null);
+ if (userDataDto.IsFavorite.HasValue)
+ {
+ userData.IsFavorite = userDataDto.IsFavorite.Value;
+ }
- if (value is null)
- {
- continue;
- }
+ if (userDataDto.Likes.HasValue)
+ {
+ userData.Likes = userDataDto.Likes.Value;
+ }
- childProperty.SetValue(userData, value, null);
- break;
- }
+ if (userDataDto.Played.HasValue)
+ {
+ userData.Played = userDataDto.Played.Value;
+ }
+
+ if (userDataDto.LastPlayedDate.HasValue)
+ {
+ userData.LastPlayedDate = userDataDto.LastPlayedDate.Value;
+ }
+
+ if (userDataDto.Rating.HasValue)
+ {
+ userData.Rating = userDataDto.Rating.Value;
}
SaveUserData(user, item, userData, reason, CancellationToken.None);