@@ -49,43 +52,57 @@
_url = (!_url.StartsWith("http")) ? url + _url : _url;
_mappedurl = _mappedurl.Replace(url, "");
- _mappedurl = (_mappedurl.StartsWith("/")) ? _mappedurl.Substring(1) : _mappedurl;
+ _mappedurl = (_mappedurl.StartsWith("/") && _mappedurl != "/") ? _mappedurl.Substring(1) : _mappedurl;
if (_url.StartsWith(url))
- {
- var urlmapping = new UrlMapping();
- urlmapping.SiteId = PageState.Site.SiteId;
+ {
+ var urlmapping = new UrlMapping();
+ urlmapping.SiteId = PageState.Site.SiteId;
urlmapping.Url = new Route(_url, PageState.Alias.Path).PagePath;
- urlmapping.MappedUrl = _mappedurl;
- urlmapping.Requests = 0;
- urlmapping.CreatedOn = DateTime.UtcNow;
- urlmapping.RequestedOn = DateTime.UtcNow;
+ urlmapping.MappedUrl = _mappedurl;
+ urlmapping.Requests = 0;
+ urlmapping.CreatedOn = DateTime.UtcNow;
+ urlmapping.RequestedOn = DateTime.UtcNow;
- try
- {
- urlmapping = await UrlMappingService.AddUrlMappingAsync(urlmapping);
- await logger.LogInformation("UrlMapping Saved {UrlMapping}", urlmapping);
- NavigationManager.NavigateTo(NavigateUrl());
- }
- catch (Exception ex)
- {
- await logger.LogError(ex, "Error Saving UrlMapping {UrlMapping} {Error}", urlmapping, ex.Message);
- AddModuleMessage(Localizer["Error.SaveUrlMapping"], MessageType.Error);
- }
- }
- else
- {
- AddModuleMessage(Localizer["Message.SaveUrlMapping"], MessageType.Warning);
- }
- }
- else
- {
+ try
+ {
+ urlmapping = await UrlMappingService.AddUrlMappingAsync(urlmapping);
+ await logger.LogInformation("UrlMapping Saved {UrlMapping}", urlmapping);
+ NavigationManager.NavigateTo(NavigateUrl());
+ }
+ catch (Exception ex)
+ {
+ await logger.LogError(ex, "Error Saving UrlMapping {UrlMapping} {Error}", urlmapping, ex.Message);
+ AddModuleMessage(Localizer["Error.SaveUrlMapping"], MessageType.Error);
+ }
+ }
+ else
+ {
+ AddModuleMessage(Localizer["Message.SaveUrlMapping"], MessageType.Warning);
+ }
+ }
+ else
+ {
AddModuleMessage(Localizer["Message.DuplicateUrlMapping"], MessageType.Warning);
- }
+ }
}
else
{
AddModuleMessage(SharedLocalizer["Message.InfoRequired"], MessageType.Warning);
}
}
+
+ private void GenerateUrl()
+ {
+ var url = PageState.Uri.Scheme + "://" + PageState.Uri.Authority + "/";
+ url = url + (!string.IsNullOrEmpty(PageState.Alias.Path) ? PageState.Alias.Path + "/" : "");
+
+ var chars = "abcdefghijklmnopqrstuvwxyz";
+ Random rnd = new Random();
+ for (int i = 0; i < 5; i++)
+ {
+ url += chars.Substring(rnd.Next(0, chars.Length - 1), 1);
+ }
+ _url = url;
+ }
}
diff --git a/Oqtane.Client/Modules/Admin/UrlMappings/Edit.razor b/Oqtane.Client/Modules/Admin/UrlMappings/Edit.razor
index 073f851d..78a062f9 100644
--- a/Oqtane.Client/Modules/Admin/UrlMappings/Edit.razor
+++ b/Oqtane.Client/Modules/Admin/UrlMappings/Edit.razor
@@ -68,7 +68,7 @@
url = url + (!string.IsNullOrEmpty(PageState.Alias.Path) ? PageState.Alias.Path + "/" : "");
_mappedurl = _mappedurl.Replace(url, "");
- _mappedurl = (_mappedurl.StartsWith("/")) ? _mappedurl.Substring(1) : _mappedurl;
+ _mappedurl = (_mappedurl.StartsWith("/") && _mappedurl != "/") ? _mappedurl.Substring(1) : _mappedurl;
var urlmapping = await UrlMappingService.GetUrlMappingAsync(_urlmappingid);
urlmapping.MappedUrl = _mappedurl;
diff --git a/Oqtane.Client/Resources/Modules/Admin/UrlMappings/Add.resx b/Oqtane.Client/Resources/Modules/Admin/UrlMappings/Add.resx
index e1185498..a8de1c59 100644
--- a/Oqtane.Client/Resources/Modules/Admin/UrlMappings/Add.resx
+++ b/Oqtane.Client/Resources/Modules/Admin/UrlMappings/Add.resx
@@ -1,4 +1,4 @@
-
+