diff options
| author | ArabCoders <admin@arabcoders.org> | 2023-11-13 17:32:24 +0300 |
|---|---|---|
| committer | ArabCoders <admin@arabcoders.org> | 2023-11-13 17:32:24 +0300 |
| commit | 07db2025a177bf5bed1cc898426a2442803ae151 (patch) | |
| tree | fc0dfbd9fa121d4ba4f5d4f47e30bd68ac31a1e6 /Emby.Server.Implementations/Library/UserDataManager.cs | |
| parent | faa036aa7b696fd5091e52fd2bed6ed67ca63481 (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.cs | 45 |
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); |
