@namespace Oqtane.Modules.Admin.Themes @using System.Net @inherits ModuleBase @inject IThemeService ThemeService @inject NavigationManager NavigationManager @inject IStringLocalizer Localizer @inject IStringLocalizer SharedLocalizer @if (_initialized) {

@SharedLocalizer["Cancel"]

} @code { private bool _initialized = false; private ElementReference form; private bool validated = false; private int _themeId; private string _themeName = ""; private string _isenabled; private string _name; private string _version; private string _packagename; private string _owner = ""; private string _url = ""; private string _contact = ""; private string _license = ""; private string _createdby; private DateTime _createdon; private string _modifiedby; private DateTime _modifiedon; public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Host; protected override async Task OnInitializedAsync() { try { _themeId = Int32.Parse(PageState.QueryString["id"]); var theme = await ThemeService.GetThemeAsync(_themeId, ModuleState.SiteId); if (theme != null) { _name = theme.Name; _isenabled =theme.IsEnabled.ToString(); _version = theme.Version; _packagename = theme.PackageName; _owner = theme.Owner; _url = theme.Url; _contact = theme.Contact; _license = theme.License; _createdby = theme.CreatedBy; _createdon = theme.CreatedOn; _modifiedby = theme.ModifiedBy; _modifiedon = theme.ModifiedOn; _initialized = true; } } catch (Exception ex) { await logger.LogError(ex, "Error Loading Theme {ThemeName} {Error}", _themeName, ex.Message); AddModuleMessage(Localizer["Error.Theme.Loading"], MessageType.Error); } } private async Task SaveTheme() { validated = true; var interop = new Interop(JSRuntime); if (await interop.FormValid(form)) { try { var theme = await ThemeService.GetThemeAsync(_themeId, ModuleState.SiteId); theme.Name = _name; theme.IsEnabled = (_isenabled == null ? true : bool.Parse(_isenabled)); await ThemeService.UpdateThemeAsync(theme); await logger.LogInformation("Theme Saved {Theme}", theme); NavigationManager.NavigateTo(NavigateUrl()); } catch (Exception ex) { await logger.LogError(ex, "Error Saving Theme {ThemeId} {Error}", _themeId, ex.Message); AddModuleMessage(Localizer["Error.Module.Save"], MessageType.Error); } } else { AddModuleMessage(SharedLocalizer["Message.InfoRequired"], MessageType.Warning); } } }