@namespace Oqtane.Modules.Admin.Settings @inherits ModuleBase @inject NavigationManager NavigationManager @inject ISettingService SettingService @inject IStringLocalizer Localizer @inject IStringLocalizer SharedLocalizer
@if (_entityNameElement == "input") { } else { }
@if (_entityIdElement == "input") { } else { }


@SharedLocalizer["Cancel"]
@code { private ElementReference form; private bool validated = false; private string _entityName = "-"; private List _entityNames = new List(); private string _entityNameElement = "select"; private string _entityNameTitle = ""; private string _entityId = "-"; private List _entityIds = new List(); private string _entityIdElement = "select"; private string _entityIdTitle = ""; private string _settingName = ""; private string _settingValue = ""; private string _isPrivate = "True"; public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Host; protected override async Task OnInitializedAsync() { try { _entityNameTitle = Localizer["Input"]; _entityIdTitle = Localizer["Input"]; // default entity names _entityNames.Add(EntityNames.Host); _entityNames.Add(EntityNames.Job); _entityNames.Add(EntityNames.ModuleDefinition); _entityNames.Add(EntityNames.Theme); _entityNames.Add(EntityNames.Tenant); _entityNames.Add(EntityNames.Site); _entityNames.Add(EntityNames.Role); _entityNames.Add(EntityNames.Page); _entityNames.Add(EntityNames.Module); _entityNames.Add(EntityNames.Folder); _entityNames.Add(EntityNames.User); _entityNames.Add(EntityNames.Visitor); // custom entity names var entityNames = await SettingService.GetEntityNamesAsync(); foreach (var entityName in entityNames) { if (!_entityNames.Contains(entityName)) { _entityNames.Add(entityName); } } } catch (Exception ex) { await logger.LogError(ex, "Error Loading Setting {Error}", ex.Message); AddModuleMessage(Localizer["Error.LoadSetting"], MessageType.Error); } } private void EntityNameClicked() { if (_entityNameElement == "select") { _entityName = ""; _entityNameElement = "input"; _entityNameTitle = Localizer["Select"]; _entityId = ""; _entityIdElement = "input"; _entityIdTitle = Localizer["Select"]; } else { _entityName = "-"; _entityNameElement = "select"; _entityNameTitle = Localizer["Input"]; } } private void EntityIdClicked() { if (_entityIdElement == "select") { _entityId = ""; _entityIdElement = "input"; _entityIdTitle = Localizer["Select"]; } else { _entityId = "-"; _entityIdElement = "select"; _entityIdTitle = Localizer["Input"]; } } private async void EntityNameChanged(ChangeEventArgs e) { try { _entityName = e.Value.ToString(); _entityId = "-"; _entityIdElement = "select"; _entityIdTitle = Localizer["Input"]; if (_entityName != "-") { _entityIds = await SettingService.GetEntityIdsAsync(_entityName); } else { _entityIds = new List(); } StateHasChanged(); } catch (Exception ex) { await logger.LogError(ex, "Error On EntityNameChanged"); } } private async Task SaveSetting() { validated = true; var interop = new Interop(JSRuntime); if (await interop.FormValid(form)) { var setting = new Setting(); setting.EntityName = _entityName; setting.EntityId = int.Parse(_entityId); setting.SettingName = _settingName; setting.SettingValue = _settingValue; setting.IsPrivate = (bool.Parse(_isPrivate)); try { setting = await SettingService.AddSettingAsync(setting); await logger.LogInformation("Setting Saved {Setting}", setting); NavigationManager.NavigateTo(PageState.ReturnUrl); } catch (Exception ex) { await logger.LogError(ex, "Error Saving Setting {Setting} {Error}", setting, ex.Message); AddModuleMessage(Localizer["Error.SaveSetting"], MessageType.Error); } } else { AddModuleMessage(SharedLocalizer["Message.InfoRequired"], MessageType.Warning); } } }