@namespace Oqtane.Modules.Admin.UrlMappings @inherits ModuleBase @inject NavigationManager NavigationManager @inject IUrlMappingService UrlMappingService @inject IStringLocalizer Localizer @inject IStringLocalizer SharedLocalizer


@SharedLocalizer["Cancel"]
@code { private ElementReference form; private bool validated = false; private int _urlmappingid; private string _url = string.Empty; private string _mappedurl = string.Empty; public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Admin; protected override async Task OnInitializedAsync() { try { _urlmappingid = Int32.Parse(PageState.QueryString["id"]); var urlmapping = await UrlMappingService.GetUrlMappingAsync(_urlmappingid); if (urlmapping != null) { _url = urlmapping.Url; _mappedurl = urlmapping.MappedUrl; } } catch (Exception ex) { await logger.LogError(ex, "Error Loading UrlMapping {UrlMappingId} {Error}", _urlmappingid, ex.Message); AddModuleMessage(Localizer["Error.LoadUrlMapping"], MessageType.Error); } } private async Task SaveUrlMapping() { validated = true; var interop = new Interop(JSRuntime); if (await interop.FormValid(form)) { if (_url != _mappedurl) { try { var url = PageState.Uri.Scheme + "://" + PageState.Uri.Authority + "/"; url = url + (!string.IsNullOrEmpty(PageState.Alias.Path) ? PageState.Alias.Path + "/" : ""); var urlmapping = await UrlMappingService.GetUrlMappingAsync(_urlmappingid); urlmapping.MappedUrl = _mappedurl.Replace(url, ""); urlmapping = await UrlMappingService.UpdateUrlMappingAsync(urlmapping); await logger.LogInformation("UrlMapping Saved {UrlMapping}", urlmapping); NavigationManager.NavigateTo(NavigateUrl()); } catch (Exception ex) { await logger.LogError(ex, "Error Saving UrlMapping {UrlMappingId} {Error}", _urlmappingid, ex.Message); AddModuleMessage(Localizer["Error.SaveUrlMapping"], MessageType.Error); } } else { AddModuleMessage(Localizer["Message.DuplicateUrlMapping"], MessageType.Warning); } } else { AddModuleMessage(SharedLocalizer["Message.InfoRequired"], MessageType.Warning); } } }