Refactoring: Add extension method for retrieval of language ISO codes if that's all we need (#20324)

* Retrieve only ISO codes from the database rather than full language objects if that's all we need.

* Apply suggestions from code review

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Removed repository updates and migrated the new service method to an extension method.

* Fixed issue after merge.

* Removed left-over using

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Kenn Jacobsen <kja@umbraco.dk>
This commit is contained in:
Andy Butland
2025-10-01 20:21:41 +02:00
committed by GitHub
parent 3f0428c8ef
commit 78f4caa2be
15 changed files with 64 additions and 35 deletions

View File

@@ -9,12 +9,11 @@ using Examine.Search;
using Lucene.Net.QueryParsers.Classic;
using Umbraco.Cms.Core;
using Umbraco.Cms.Core.Cache;
using Umbraco.Cms.Core.Mapping;
using Umbraco.Cms.Core.Extensions;
using Umbraco.Cms.Core.Models;
using Umbraco.Cms.Core.Models.ContentEditing;
using Umbraco.Cms.Core.Models.Entities;
using Umbraco.Cms.Core.Models.Membership;
using Umbraco.Cms.Core.Routing;
using Umbraco.Cms.Core.Security;
using Umbraco.Cms.Core.Services;
using Umbraco.Cms.Infrastructure.Examine;
@@ -160,7 +159,7 @@ internal sealed class ExamineExternalIndexSearcherTest : IExamineExternalIndexSe
// then nodeName will be matched normally with wildcards
// the rest will be normal without wildcards
var allLanguages = (await _languageService.GetAllAsync()).Select(x => x.IsoCode.ToLowerInvariant()).ToList();
var allLanguages = (await _languageService.GetAllIsoCodesAsync()).Select(x => x.ToLowerInvariant()).ToList();
// the chars [*-_] in the query will mess everything up so let's remove those
// However we cannot just remove - and _ since these signify a space, so we instead replace them with that.

View File

@@ -1,5 +1,6 @@
using NUnit.Framework;
using Umbraco.Cms.Core;
using Umbraco.Cms.Core.Extensions;
using Umbraco.Cms.Core.Models;
using Umbraco.Cms.Core.Services;
using Umbraco.Cms.Core.Services.OperationStatus;
@@ -28,6 +29,14 @@ internal sealed class LanguageServiceTests : UmbracoIntegrationTest
Assert.That(languages.Count(), Is.EqualTo(3));
}
[Test]
public async Task Can_Get_All_Language_Iso_Codes()
{
var isoCodes = await LanguageService.GetAllIsoCodesAsync();
Assert.That(isoCodes.Count(), Is.EqualTo(3));
Assert.AreEqual("da-DK,en-GB,en-US", string.Join(",", isoCodes.OrderBy(x => x)));
}
[Test]
public async Task Can_GetLanguageByIsoCode()
{