Merge pull request #336 from hishamco/navigate-url
Simplify NavigateUrl using UriBuilder
This commit is contained in:
commit
532a33ff47
|
@ -14,30 +14,18 @@ namespace Oqtane.Shared
|
|||
var assemblyName = assemblyFullName.Substring(0, assemblyFullName.IndexOf(",", StringComparison.Ordinal));
|
||||
return $"{type.Namespace}, {assemblyName}";
|
||||
}
|
||||
|
||||
public static string NavigateUrl(string alias, string path, string parameters)
|
||||
{
|
||||
string url = "";
|
||||
if (alias != "")
|
||||
var uriBuilder = new UriBuilder
|
||||
{
|
||||
url += alias + "/";
|
||||
}
|
||||
if (path != "" && path != "/")
|
||||
{
|
||||
url += path + "/";
|
||||
}
|
||||
if (url.EndsWith("/"))
|
||||
{
|
||||
url = url.Substring(0, url.Length - 1);
|
||||
}
|
||||
if (!string.IsNullOrEmpty(parameters))
|
||||
{
|
||||
url += "?" + parameters;
|
||||
}
|
||||
if (!url.StartsWith("/"))
|
||||
{
|
||||
url = "/" + url;
|
||||
}
|
||||
return url;
|
||||
Path = !string.IsNullOrEmpty(alias)
|
||||
? $"{alias}/{path}"
|
||||
: $"{path}",
|
||||
Query = parameters
|
||||
};
|
||||
|
||||
return uriBuilder.Uri.PathAndQuery;
|
||||
}
|
||||
|
||||
public static string EditUrl(string alias, string path, int moduleid, string action, string parameters)
|
||||
|
|
31
Oqtane.Test/Oqtane.Shared.Tests/UtilitiesTests.cs
Normal file
31
Oqtane.Test/Oqtane.Shared.Tests/UtilitiesTests.cs
Normal file
|
@ -0,0 +1,31 @@
|
|||
using Oqtane.Shared;
|
||||
using Xunit;
|
||||
|
||||
namespace Oqtane.Test.Oqtane.Shared.Tests
|
||||
{
|
||||
public class UtilitiesTests
|
||||
{
|
||||
[Theory]
|
||||
[InlineData("contoso", "login", "returnUrl=/admin", "/contoso/login?returnUrl=/admin")]
|
||||
[InlineData("contoso", "admin", "", "/contoso/admin")]
|
||||
[InlineData("contoso", "", "pageId=4", "/contoso?pageId=4")]
|
||||
[InlineData("contoso", "", "pageId=4&moduleId=10", "/contoso?pageId=4&moduleId=10")]
|
||||
[InlineData("contoso", "", "", "/contoso/")]
|
||||
[InlineData("", "login", "returnUrl=/admin", "/login?returnUrl=/admin")]
|
||||
[InlineData("", "admin", "", "/admin")]
|
||||
[InlineData("", "", "pageId=4", "?pageId=4")]
|
||||
[InlineData("", "", "pageId=4&moduleId=10", "?pageId=4&moduleId=10")]
|
||||
[InlineData("", "", "", "/")]
|
||||
public void NavigateUrlTest(string alias, string path, string parameters, string expectedUrl)
|
||||
{
|
||||
// Arrange
|
||||
var navigatedUrl = string.Empty;
|
||||
|
||||
// Act
|
||||
navigatedUrl = Utilities.NavigateUrl(alias, path, parameters);
|
||||
|
||||
// Assert
|
||||
Assert.Equal(expectedUrl, navigatedUrl);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user