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));
|
var assemblyName = assemblyFullName.Substring(0, assemblyFullName.IndexOf(",", StringComparison.Ordinal));
|
||||||
return $"{type.Namespace}, {assemblyName}";
|
return $"{type.Namespace}, {assemblyName}";
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string NavigateUrl(string alias, string path, string parameters)
|
public static string NavigateUrl(string alias, string path, string parameters)
|
||||||
{
|
{
|
||||||
string url = "";
|
var uriBuilder = new UriBuilder
|
||||||
if (alias != "")
|
|
||||||
{
|
{
|
||||||
url += alias + "/";
|
Path = !string.IsNullOrEmpty(alias)
|
||||||
}
|
? $"{alias}/{path}"
|
||||||
if (path != "" && path != "/")
|
: $"{path}",
|
||||||
{
|
Query = parameters
|
||||||
url += path + "/";
|
};
|
||||||
}
|
|
||||||
if (url.EndsWith("/"))
|
return uriBuilder.Uri.PathAndQuery;
|
||||||
{
|
|
||||||
url = url.Substring(0, url.Length - 1);
|
|
||||||
}
|
|
||||||
if (!string.IsNullOrEmpty(parameters))
|
|
||||||
{
|
|
||||||
url += "?" + parameters;
|
|
||||||
}
|
|
||||||
if (!url.StartsWith("/"))
|
|
||||||
{
|
|
||||||
url = "/" + url;
|
|
||||||
}
|
|
||||||
return url;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string EditUrl(string alias, string path, int moduleid, string action, string parameters)
|
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