Skip to content

Commit 87bfc1b

Browse files
committed
split up extension files
1 parent bdf5b0e commit 87bfc1b

29 files changed

Lines changed: 272 additions & 243 deletions

src/SMAPI.Web/Controllers/JsonValidatorController.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
using Newtonsoft.Json.Linq;
1010
using Newtonsoft.Json.Schema;
1111
using StardewModdingAPI.Web.Framework;
12+
using StardewModdingAPI.Web.Framework.Extensions;
1213
using StardewModdingAPI.Web.Framework.Storage;
1314
using StardewModdingAPI.Web.ViewModels.JsonValidator;
1415

src/SMAPI.Web/Controllers/LogParserController.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
using Newtonsoft.Json;
99
using StardewModdingAPI.Toolkit.Utilities;
1010
using StardewModdingAPI.Web.Framework;
11+
using StardewModdingAPI.Web.Framework.Extensions;
1112
using StardewModdingAPI.Web.Framework.LogParsing;
1213
using StardewModdingAPI.Web.Framework.LogParsing.Models;
1314
using StardewModdingAPI.Web.Framework.Storage;

src/SMAPI.Web/Controllers/ModsApiController.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
using StardewModdingAPI.Web.Framework.Clients.Nexus;
2424
using StardewModdingAPI.Web.Framework.Clients.UpdateManifest;
2525
using StardewModdingAPI.Web.Framework.ConfigModels;
26+
using StardewModdingAPI.Web.Framework.Extensions;
2627
using StardewModdingAPI.Web.Framework.Metrics;
2728

2829
namespace StardewModdingAPI.Web.Controllers;
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
using Microsoft.AspNetCore.Html;
2+
using Microsoft.AspNetCore.Mvc.Razor;
3+
using Microsoft.AspNetCore.Mvc.Rendering;
4+
using Newtonsoft.Json;
5+
6+
namespace StardewModdingAPI.Web.Framework.Extensions;
7+
8+
/// <summary>Provides extensions for <see cref="RazorPageBase"/>.</summary>
9+
public static class RazorPageBaseExtensions
10+
{
11+
/// <param name="page">The page to extend.</param>
12+
extension(RazorPageBase page)
13+
{
14+
/// <summary>Get a serialized JSON representation of the value.</summary>
15+
/// <param name="value">The value to serialize.</param>
16+
/// <returns>The serialized JSON.</returns>
17+
/// <remarks>This bypasses unnecessary validation (e.g. not allowing null values) in <see cref="IJsonHelper.Serialize"/>.</remarks>
18+
public IHtmlContent ForJson(object? value)
19+
{
20+
string json = JsonConvert.SerializeObject(value);
21+
return new HtmlString(json);
22+
}
23+
}
24+
}

src/SMAPI.Web/Framework/Extensions.cs renamed to src/SMAPI.Web/Framework/Extensions/UrlHelperExtensions.cs

Lines changed: 3 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,14 @@
11
using System;
22
using JetBrains.Annotations;
3-
using Microsoft.AspNetCore.Html;
43
using Microsoft.AspNetCore.Http;
54
using Microsoft.AspNetCore.Mvc;
6-
using Microsoft.AspNetCore.Mvc.Razor;
7-
using Microsoft.AspNetCore.Mvc.Rendering;
85
using Microsoft.AspNetCore.Routing;
9-
using Newtonsoft.Json;
106

11-
namespace StardewModdingAPI.Web.Framework;
7+
namespace StardewModdingAPI.Web.Framework.Extensions;
128

13-
/// <summary>Provides extensions on ASP.NET Core types.</summary>
14-
public static class Extensions
9+
/// <summary>Provides extensions for <see cref="IUrlHelper"/>.</summary>
10+
public static class UrlHelperExtensions
1511
{
16-
/*********
17-
** Public methods
18-
*********/
19-
/****
20-
** View helpers
21-
****/
2212
/// <param name="helper">The URL helper to extend.</param>
2313
extension(IUrlHelper helper)
2414
{
@@ -60,18 +50,4 @@ public string ContentWithCacheBust(string url)
6050
return helper.Content($"{url}{delimiter}v={Program.CacheBustValue}");
6151
}
6252
}
63-
64-
/// <param name="page">The page to extend.</param>
65-
extension(RazorPageBase page)
66-
{
67-
/// <summary>Get a serialized JSON representation of the value.</summary>
68-
/// <param name="value">The value to serialize.</param>
69-
/// <returns>The serialized JSON.</returns>
70-
/// <remarks>This bypasses unnecessary validation (e.g. not allowing null values) in <see cref="IJsonHelper.Serialize"/>.</remarks>
71-
public IHtmlContent ForJson(object? value)
72-
{
73-
string json = JsonConvert.SerializeObject(value);
74-
return new HtmlString(json);
75-
}
76-
}
7753
}

src/SMAPI.Web/Views/Index/Index.cshtml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
@using StardewModdingAPI.Web.Framework
1+
@using StardewModdingAPI.Web.Framework.Extensions
22
@model StardewModdingAPI.Web.ViewModels.IndexModel
33
@{
44
ViewData["Title"] = "SMAPI";

src/SMAPI.Web/Views/Index/Privacy.cshtml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
@using StardewModdingAPI.Web.Framework
1+
@using StardewModdingAPI.Web.Framework.Extensions
22
@{
33
ViewData["Title"] = "SMAPI privacy notes";
44
}

src/SMAPI.Web/Views/JsonValidator/Index.cshtml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
@using Humanizer
2-
@using StardewModdingAPI.Web.Framework
2+
@using StardewModdingAPI.Web.Framework.Extensions
33
@using StardewModdingAPI.Web.ViewModels.JsonValidator
44
@model JsonValidatorModel
55

src/SMAPI.Web/Views/LogParser/Index.cshtml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
@using Humanizer
22
@using StardewModdingAPI.Toolkit.Utilities
33
@using StardewModdingAPI.Web.Framework
4+
@using StardewModdingAPI.Web.Framework.Extensions
45
@using StardewModdingAPI.Web.Framework.LogParsing.Models
56
@using StardewModdingAPI.Web.ViewModels
67
@model StardewModdingAPI.Web.ViewModels.LogParserModel

src/SMAPI.Web/Views/Mods/Index.cshtml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
@using Humanizer
2-
@using StardewModdingAPI.Web.Framework
2+
@using StardewModdingAPI.Web.Framework.Extensions
33
@model StardewModdingAPI.Web.ViewModels.ModListModel
44
@{
55
ViewData["Title"] = "Mod compatibility";

0 commit comments

Comments
 (0)