optimize database calls related to search index (#2645)

This commit is contained in:
Jason Dove
2025-11-13 13:27:37 -06:00
committed by GitHub
parent b6d509b9cd
commit d88e721d2f
32 changed files with 837 additions and 729 deletions
@@ -0,0 +1,48 @@
using ErsatzTV.Core.Interfaces.Metadata;
namespace ErsatzTV.Core.Metadata;
public class LanguageCodeService(ILanguageCodeCache languageCodeCache) : ILanguageCodeService
{
public List<string> GetAllLanguageCodes(string mediaCode)
{
if (string.IsNullOrWhiteSpace(mediaCode))
{
return [];
}
string code = mediaCode.ToLowerInvariant();
if (languageCodeCache.CodeToGroupLookup.TryGetValue(code, out string[] group))
{
return group.ToList();
}
return [];
}
public List<string> GetAllLanguageCodes(List<string> mediaCodes)
{
var validCodes = mediaCodes
.Where(c => !string.IsNullOrWhiteSpace(c))
.Select(c => c.ToLowerInvariant())
.ToHashSet();
if (validCodes.Count == 0)
{
return [];
}
var result = new System.Collections.Generic.HashSet<string>(validCodes);
foreach (string code in validCodes)
{
if (languageCodeCache.CodeToGroupLookup.TryGetValue(code, out string[] group))
{
result.UnionWith(group);
}
}
return result.ToList();
}
}