Skip to content

Commit

Permalink
Use ILocalizationService instead of get all cultures (#14934)
Browse files Browse the repository at this point in the history
  • Loading branch information
hishamco committed Dec 21, 2023
1 parent 1a9ffeb commit 3b32281
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
using OrchardCore.DisplayManagement;
using OrchardCore.DisplayManagement.Notify;
using OrchardCore.Liquid;
using OrchardCore.Localization;
using OrchardCore.Navigation;
using OrchardCore.Routing;
using OrchardCore.Search.Elasticsearch.Core.Models;
Expand Down Expand Up @@ -48,6 +49,7 @@ public class AdminController : Controller
private readonly ILogger _logger;
private readonly IOptions<TemplateOptions> _templateOptions;
private readonly IShapeFactory _shapeFactory;
private readonly ILocalizationService _localizationService;

protected readonly IStringLocalizer S;
protected readonly IHtmlLocalizer H;
Expand All @@ -68,9 +70,9 @@ public AdminController(
ILogger<AdminController> logger,
IOptions<TemplateOptions> templateOptions,
IShapeFactory shapeFactory,
ILocalizationService localizationService,
IStringLocalizer<AdminController> stringLocalizer,
IHtmlLocalizer<AdminController> htmlLocalizer
)
IHtmlLocalizer<AdminController> htmlLocalizer)
{
_session = session;
_siteService = siteService;
Expand All @@ -86,8 +88,8 @@ IHtmlLocalizer<AdminController> htmlLocalizer
_notifier = notifier;
_logger = logger;
_templateOptions = templateOptions;

_shapeFactory = shapeFactory;
_localizationService = localizationService;
S = stringLocalizer;
H = htmlLocalizer;
}
Expand Down Expand Up @@ -182,7 +184,7 @@ public async Task<ActionResult> Edit(string indexName = null)
StoreSourceData = settings.StoreSourceData
};

PopulateMenuOptions(model);
await PopulateMenuOptionsAsync(model);

return View(model);
}
Expand Down Expand Up @@ -214,7 +216,7 @@ public async Task<ActionResult> EditPost(ElasticIndexSettingsViewModel model, st

if (!ModelState.IsValid)
{
PopulateMenuOptions(model);
await PopulateMenuOptionsAsync(model);

return View(model);
}
Expand Down Expand Up @@ -243,7 +245,7 @@ public async Task<ActionResult> EditPost(ElasticIndexSettingsViewModel model, st
await _notifier.ErrorAsync(H["An error occurred while creating the index."]);
_logger.LogError(e, "An error occurred while creating index: {indexName}.", _elasticIndexManager.GetFullIndexName(model.IndexName));

PopulateMenuOptions(model);
await PopulateMenuOptionsAsync(model);

return View(model);
}
Expand Down Expand Up @@ -271,7 +273,7 @@ public async Task<ActionResult> EditPost(ElasticIndexSettingsViewModel model, st
await _notifier.ErrorAsync(H["An error occurred while editing the index."]);
_logger.LogError(e, "An error occurred while editing index: {indexName}.", _elasticIndexManager.GetFullIndexName(model.IndexName));

PopulateMenuOptions(model);
await PopulateMenuOptionsAsync(model);

return View(model);
}
Expand Down Expand Up @@ -559,10 +561,15 @@ private void ValidateModel(ElasticIndexSettingsViewModel model)
}
}

private void PopulateMenuOptions(ElasticIndexSettingsViewModel model)
private async Task PopulateMenuOptionsAsync(ElasticIndexSettingsViewModel model)
{
model.Cultures = CultureInfo.GetCultures(CultureTypes.AllCultures)
.Select(x => new SelectListItem { Text = $"{x.Name} ({x.DisplayName})", Value = x.Name });
var supportedCultures = await _localizationService.GetSupportedCulturesAsync();

model.Cultures = supportedCultures.Select(c => new SelectListItem
{
Text = $"{c} ({CultureInfo.GetCultureInfo(c).DisplayName})",
Value = c
});

model.Analyzers = _elasticSearchOptions.Analyzers
.Select(x => new SelectListItem { Text = x.Key, Value = x.Key });
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ public class AdminController : Controller
protected readonly IHtmlLocalizer H;
private readonly ILogger _logger;
private readonly IOptions<TemplateOptions> _templateOptions;
private readonly ILocalizationService _localizationService;

public AdminController(
ISession session,
Expand All @@ -69,7 +70,8 @@ public AdminController(
IStringLocalizer<AdminController> stringLocalizer,
IHtmlLocalizer<AdminController> htmlLocalizer,
ILogger<AdminController> logger,
IOptions<TemplateOptions> templateOptions)
IOptions<TemplateOptions> templateOptions,
ILocalizationService localizationService)
{
_session = session;
_luceneIndexManager = luceneIndexManager;
Expand All @@ -83,12 +85,12 @@ public AdminController(
_notifier = notifier;
_pagerOptions = pagerOptions.Value;
_javaScriptEncoder = javaScriptEncoder;

New = shapeFactory;
S = stringLocalizer;
H = htmlLocalizer;
_logger = logger;
_templateOptions = templateOptions;
_localizationService = localizationService;
}

public async Task<IActionResult> Index(ContentOptions options, PagerParameters pagerParameters)
Expand Down Expand Up @@ -208,8 +210,14 @@ public async Task<ActionResult> EditPost(LuceneIndexSettingsViewModel model, str

if (!ModelState.IsValid)
{
model.Cultures = CultureInfo.GetCultures(CultureTypes.AllCultures)
.Select(x => new SelectListItem { Text = x.Name + " (" + x.DisplayName + ")", Value = x.Name }).Prepend(new SelectListItem { Text = S["Any culture"], Value = "any" });
var supportedCultures = await _localizationService.GetSupportedCulturesAsync();

model.Cultures = supportedCultures
.Select(c => new SelectListItem
{
Text = $"{c} ({CultureInfo.GetCultureInfo(c).DisplayName})",
Value = c
}).Prepend(new SelectListItem { Text = S["Any culture"], Value = "any" });
model.Analyzers = _luceneAnalyzerManager.GetAnalyzers()
.Select(x => new SelectListItem { Text = x.Name, Value = x.Name });
return View(model);
Expand Down

0 comments on commit 3b32281

Please sign in to comment.