summaryrefslogtreecommitdiff
path: root/src/SMAPI.Web/Framework
diff options
context:
space:
mode:
authorJesse Plamondon-Willard <Pathoschild@users.noreply.github.com>2019-12-24 13:59:11 -0500
committerJesse Plamondon-Willard <Pathoschild@users.noreply.github.com>2019-12-24 13:59:11 -0500
commit2833ad9a621d82cfef5be3868f89c9b2db436cf6 (patch)
tree898c859cb645cb916bcc39a0fca80fb6ec8d64a8 /src/SMAPI.Web/Framework
parentd932a11f51392cd42ab501185982af971f954c8d (diff)
downloadSMAPI-2833ad9a621d82cfef5be3868f89c9b2db436cf6.tar.gz
SMAPI-2833ad9a621d82cfef5be3868f89c9b2db436cf6.tar.bz2
SMAPI-2833ad9a621d82cfef5be3868f89c9b2db436cf6.zip
fix log parser & JSON validator showing relative share URL
Diffstat (limited to 'src/SMAPI.Web/Framework')
-rw-r--r--src/SMAPI.Web/Framework/Extensions.cs14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/SMAPI.Web/Framework/Extensions.cs b/src/SMAPI.Web/Framework/Extensions.cs
index d7707924..e0da1424 100644
--- a/src/SMAPI.Web/Framework/Extensions.cs
+++ b/src/SMAPI.Web/Framework/Extensions.cs
@@ -1,4 +1,6 @@
+using System;
using JetBrains.Annotations;
+using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Routing;
@@ -12,8 +14,9 @@ namespace StardewModdingAPI.Web.Framework
/// <param name="action">The name of the action method.</param>
/// <param name="controller">The name of the controller.</param>
/// <param name="values">An object that contains route values.</param>
+ /// <param name="absoluteUrl">Get an absolute URL instead of a server-relative path/</param>
/// <returns>The generated URL.</returns>
- public static string PlainAction(this IUrlHelper helper, [AspMvcAction] string action, [AspMvcController] string controller, object values = null)
+ public static string PlainAction(this IUrlHelper helper, [AspMvcAction] string action, [AspMvcController] string controller, object values = null, bool absoluteUrl = false)
{
RouteValueDictionary valuesDict = new RouteValueDictionary(values);
foreach (var value in helper.ActionContext.RouteData.Values)
@@ -22,7 +25,14 @@ namespace StardewModdingAPI.Web.Framework
valuesDict[value.Key] = null; // explicitly remove it from the URL
}
- return helper.Action(action, controller, valuesDict);
+ string url = helper.Action(action, controller, valuesDict);
+ if (absoluteUrl)
+ {
+ HttpRequest request = helper.ActionContext.HttpContext.Request;
+ Uri baseUri = new Uri($"{request.Scheme}://{request.Host}");
+ url = new Uri(baseUri, url).ToString();
+ }
+ return url;
}
}
}