@namespace Oqtane.Modules.Admin.Languages @inherits ModuleBase @using System.Globalization @inject NavigationManager NavigationManager @inject ILocalizationService LocalizationService @inject ILanguageService LanguageService @inject IPackageService PackageService @inject IStringLocalizer Localizer @inject IStringLocalizer SharedLocalizer @if (_code == null) {

@SharedLocalizer["Loading"]

} else {
@SharedLocalizer["Cancel"]
} @code { private ElementReference form; private bool validated = false; private int _languageId = -1; private string _code = string.Empty; private string _cultureName = string.Empty; private string _default = "False"; private List _languages; public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Admin; protected override async Task OnInitializedAsync() { _languageId = Int32.Parse(PageState.QueryString["id"]); _languages = await LanguageService.GetLanguagesAsync(PageState.Site.SiteId, Constants.ClientId); Language language = _languages.Where(x => x.LanguageId == _languageId).FirstOrDefault(); if (language != null) { _code = language.Code; _cultureName = language.Name; _default = language.IsDefault.ToString(); if (language.SiteId == null) { language.SiteId = PageState.Site.SiteId; } }; } private async Task SaveLanguage() { Language language = _languages.Where(x => x.LanguageId == _languageId).FirstOrDefault(); if (language != null) { language.IsDefault = Boolean.Parse(_default); try { await LanguageService.EditLanguageAsync(language); if (language.IsDefault) { await SetCultureAsync(language.Code); } await logger.LogInformation("Language Edited {Language}", language); NavigationManager.NavigateTo(NavigateUrl()); } catch (Exception ex) { await logger.LogError(ex, "Error Editing Language {Language} {Error}", language, ex.Message); AddModuleMessage(Localizer["Error.Language.Edit"], MessageType.Error); } }; } private async Task SetCultureAsync(string culture) { if (culture != CultureInfo.CurrentUICulture.Name) { var interop = new Interop(JSRuntime); var localizationCookieValue = CookieRequestCultureProvider.MakeCookieValue(new RequestCulture(culture)); await interop.SetCookie(CookieRequestCultureProvider.DefaultCookieName, localizationCookieValue, 360, true, "Lax"); } } }