diff options
| author | Bond-009 <bond.009@outlook.com> | 2020-12-02 15:55:17 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-12-02 15:55:17 +0100 |
| commit | ea20f05de41feb6ba876bc5a17f0d62d419fe04f (patch) | |
| tree | 37ae943f72f566e2069a204a03c4446f2480f00b | |
| parent | 5bfc5b916640b82023799b079b79a3b77f00fc5f (diff) | |
| parent | 185476c08ac942b942623362a8f9e917c2d8c3a0 (diff) | |
Merge pull request #4589 from ConfusedPolarBear/id-fix
[Fix] Test query value
| -rw-r--r-- | Emby.Server.Implementations/Data/SqliteItemRepository.cs | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/Emby.Server.Implementations/Data/SqliteItemRepository.cs b/Emby.Server.Implementations/Data/SqliteItemRepository.cs index 7e01bd4b6..50c7a07d4 100644 --- a/Emby.Server.Implementations/Data/SqliteItemRepository.cs +++ b/Emby.Server.Implementations/Data/SqliteItemRepository.cs @@ -4519,17 +4519,17 @@ namespace Emby.Server.Implementations.Data if (query.HasImdbId.HasValue) { - whereClauses.Add("ProviderIds like '%imdb=%'"); + whereClauses.Add(GetProviderIdClause(query.HasImdbId.Value, "imdb")); } if (query.HasTmdbId.HasValue) { - whereClauses.Add("ProviderIds like '%tmdb=%'"); + whereClauses.Add(GetProviderIdClause(query.HasTmdbId.Value, "tmdb")); } if (query.HasTvdbId.HasValue) { - whereClauses.Add("ProviderIds like '%tvdb=%'"); + whereClauses.Add(GetProviderIdClause(query.HasTvdbId.Value, "tvdb")); } var includedItemByNameTypes = GetItemByNameTypesInQuery(query).SelectMany(MapIncludeItemTypes).ToList(); @@ -4769,6 +4769,21 @@ namespace Emby.Server.Implementations.Data return whereClauses; } + /// <summary> + /// Formats a where clause for the specified provider. + /// </summary> + /// <param name="includeResults">Whether or not to include items with this provider's ids.</param> + /// <param name="provider">Provider name.</param> + /// <returns>Formatted SQL clause.</returns> + private string GetProviderIdClause(bool includeResults, string provider) + { + return string.Format( + CultureInfo.InvariantCulture, + "ProviderIds {0} like '%{1}=%'", + includeResults ? string.Empty : "not", + provider); + } + private List<string> GetItemByNameTypesInQuery(InternalItemsQuery query) { var list = new List<string>(); |
