From 07db2025a177bf5bed1cc898426a2442803ae151 Mon Sep 17 00:00:00 2001 From: ArabCoders Date: Mon, 13 Nov 2023 17:32:24 +0300 Subject: [PATCH] Refactored the code to not use reflection. --- .../Library/UserDataManager.cs | 47 ++++++++++++------- MediaBrowser.Model/Dto/UserDataDto.cs | 3 -- 2 files changed, 29 insertions(+), 21 deletions(-) diff --git a/Emby.Server.Implementations/Library/UserDataManager.cs b/Emby.Server.Implementations/Library/UserDataManager.cs index 0d67f2cda3..585fdd4f09 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(); - - foreach (var parentProperty in parentProperties) + if (userDataDto.PlaybackPositionTicks.HasValue) { - foreach (var childProperty in childProperties) - { - if (parentProperty.Name != childProperty.Name) - { - continue; - } + userData.PlaybackPositionTicks = userDataDto.PlaybackPositionTicks.Value; + } - var value = parentProperty.GetValue(userDataDto, null); + if (userDataDto.PlayCount.HasValue) + { + userData.PlayCount = userDataDto.PlayCount.Value; + } - if (value is null) - { - continue; - } + if (userDataDto.IsFavorite.HasValue) + { + userData.IsFavorite = userDataDto.IsFavorite.Value; + } - childProperty.SetValue(userData, value, null); - break; - } + if (userDataDto.Likes.HasValue) + { + userData.Likes = userDataDto.Likes.Value; + } + + 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); diff --git a/MediaBrowser.Model/Dto/UserDataDto.cs b/MediaBrowser.Model/Dto/UserDataDto.cs index 3012916f84..6d8c8969b0 100644 --- a/MediaBrowser.Model/Dto/UserDataDto.cs +++ b/MediaBrowser.Model/Dto/UserDataDto.cs @@ -1,6 +1,3 @@ -#nullable disable -using System; - namespace MediaBrowser.Model.Dto { ///