From 0a4ca33d4f92d2674a1798957a29665d60b7e006 Mon Sep 17 00:00:00 2001 From: Tobias Kloy Date: Fri, 7 Feb 2025 14:38:33 +0100 Subject: [PATCH 1/4] Fix Search results are case-sensitive for people --- Jellyfin.Server.Implementations/Item/PeopleRepository.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jellyfin.Server.Implementations/Item/PeopleRepository.cs b/Jellyfin.Server.Implementations/Item/PeopleRepository.cs index d1823514a6..f95f0574f4 100644 --- a/Jellyfin.Server.Implementations/Item/PeopleRepository.cs +++ b/Jellyfin.Server.Implementations/Item/PeopleRepository.cs @@ -155,7 +155,7 @@ public class PeopleRepository(IDbContextFactory dbProvider, I if (!string.IsNullOrWhiteSpace(filter.NameContains)) { - query = query.Where(e => e.Name.Contains(filter.NameContains)); + query = query.Where(e => EF.Functions.Like(e.Name, $"%{filter.NameContains}%")); } return query; From 7f41cc53caa3b6379f5145d94e7d7ef0ea5d0d72 Mon Sep 17 00:00:00 2001 From: tkloy24 <71210947+tkloy24@users.noreply.github.com> Date: Fri, 7 Feb 2025 19:46:38 +0100 Subject: [PATCH 2/4] Update Jellyfin.Server.Implementations/Item/PeopleRepository.cs Co-authored-by: JPVenson --- Jellyfin.Server.Implementations/Item/PeopleRepository.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jellyfin.Server.Implementations/Item/PeopleRepository.cs b/Jellyfin.Server.Implementations/Item/PeopleRepository.cs index f95f0574f4..89335da5f5 100644 --- a/Jellyfin.Server.Implementations/Item/PeopleRepository.cs +++ b/Jellyfin.Server.Implementations/Item/PeopleRepository.cs @@ -155,7 +155,7 @@ public class PeopleRepository(IDbContextFactory dbProvider, I if (!string.IsNullOrWhiteSpace(filter.NameContains)) { - query = query.Where(e => EF.Functions.Like(e.Name, $"%{filter.NameContains}%")); + query = query.Where(e => e.Name.ToUpper().Contains(filter.NameContains.ToUpper())); } return query; From 3a4d67319af41162a1c58b290c76d8cb0d1ccbe0 Mon Sep 17 00:00:00 2001 From: Tobias Kloy Date: Fri, 7 Feb 2025 20:37:35 +0100 Subject: [PATCH 3/4] Disable Warnings similar as in BaseItemRepository --- Jellyfin.Server.Implementations/Item/PeopleRepository.cs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Jellyfin.Server.Implementations/Item/PeopleRepository.cs b/Jellyfin.Server.Implementations/Item/PeopleRepository.cs index 89335da5f5..48db236190 100644 --- a/Jellyfin.Server.Implementations/Item/PeopleRepository.cs +++ b/Jellyfin.Server.Implementations/Item/PeopleRepository.cs @@ -11,6 +11,9 @@ using Microsoft.EntityFrameworkCore; namespace Jellyfin.Server.Implementations.Item; #pragma warning disable RS0030 // Do not use banned APIs +#pragma warning disable CA1304 // Specify CultureInfo +#pragma warning disable CA1311 // Specify a culture or use an invariant version +#pragma warning disable CA1862 // Use the 'StringComparison' method overloads to perform case-insensitive string comparisons /// /// Manager for handling people. From 83f0f3d6295961961ae4b188cb573e05f33fb7a4 Mon Sep 17 00:00:00 2001 From: Tobias Kloy Date: Fri, 7 Feb 2025 22:20:35 +0100 Subject: [PATCH 4/4] Optimise string handling in PeopleRepository filtering. --- Jellyfin.Server.Implementations/Item/PeopleRepository.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Jellyfin.Server.Implementations/Item/PeopleRepository.cs b/Jellyfin.Server.Implementations/Item/PeopleRepository.cs index 48db236190..a8dfd4cd3a 100644 --- a/Jellyfin.Server.Implementations/Item/PeopleRepository.cs +++ b/Jellyfin.Server.Implementations/Item/PeopleRepository.cs @@ -158,7 +158,8 @@ public class PeopleRepository(IDbContextFactory dbProvider, I if (!string.IsNullOrWhiteSpace(filter.NameContains)) { - query = query.Where(e => e.Name.ToUpper().Contains(filter.NameContains.ToUpper())); + var nameContainsUpper = filter.NameContains.ToUpper(); + query = query.Where(e => e.Name.ToUpper().Contains(nameContainsUpper)); } return query;