Changed names
618a3a799f74041d4901438c96a9c355f5b9b33d
7 files changed
src/VanDerHeijden.JsonBodyProvider/JsonBodyCorrectLists.cssrc/VanDerHeijden.JsonBodyProvider/JsonBodyExtensions.cssrc/VanDerHeijden.JsonBodyProvider/JsonBodyValueProviderFactory.cssrc/VanDerHeijden.JsonBodyProvider/VanDerHeijden.JsonBodyProvider.csprojtest/VanDerHeijden.JsonBodyProviderTest/Controllers/FirstController.cstest/VanDerHeijden.JsonBodyProviderTest/Program.cstest/VanDerHeijden.JsonBodyProviderTest/Properties/launchSettings.json
diff --git a/src/VanDerHeijden.JsonBodyProvider/JsonBodyCorrectLists.cs b/src/VanDerHeijden.JsonBodyProvider/JsonBodyCorrectLists.cs
index 09e21f6..63a80e3 100644
--- a/src/VanDerHeijden.JsonBodyProvider/JsonBodyCorrectLists.cs
+++ b/src/VanDerHeijden.JsonBodyProvider/JsonBodyCorrectLists.cs
@@ -55,14 +55,14 @@ public class NoFallbackListBinder<T> : IModelBinder
continue;
}
- // empty → default (regel a), behalve nullable → default = null? nee = 0/false (a/b)
+ // empty → default (line a), except nullable → default = null? no = 0/false (a/b)
if (v == "")
{
result.Add((T?)DefaultValueFor(underlying));
continue;
}
- // parse naar type
+ // parse to type
result.Add((T?)ParseValue(v, underlying));
}
@@ -111,8 +111,6 @@ public class NoFallbackListBinder<T> : IModelBinder
return default(TimeOnly);
}
- // verder zoals je had ↓↓↓
-
if (type == typeof(double)) return double.Parse(v, CultureInfo.InvariantCulture);
if (type == typeof(float)) return float.Parse(v, CultureInfo.InvariantCulture);
if (type == typeof(decimal)) return decimal.Parse(v, CultureInfo.InvariantCulture);
diff --git a/src/VanDerHeijden.JsonBodyProvider/JsonBodyExtensions.cs b/src/VanDerHeijden.JsonBodyProvider/JsonBodyExtensions.cs
index edf5a26..acde2e9 100644
--- a/src/VanDerHeijden.JsonBodyProvider/JsonBodyExtensions.cs
+++ b/src/VanDerHeijden.JsonBodyProvider/JsonBodyExtensions.cs
@@ -4,12 +4,15 @@ namespace VanDerHeijden.JsonBodyProvider;
public static class JsonBodyExtensions
{
- public static IServiceCollection AddJsonBodyProvider(this IServiceCollection services, bool CorrectLists = false)
+ public static IServiceCollection AddJsonBodyProvider(this IServiceCollection services,
+ bool CorrectLists = true,
+ bool ParseHeaders = false,
+ bool ParseCookies = false)
{
return services
.AddControllers(options =>
{
- options.ValueProviderFactories.Add(new JsonBodyValueProviderFactory());
+ options.ValueProviderFactories.Add(new JsonBodyValueProviderFactory(ParseHeaders, ParseCookies));
if (CorrectLists)
{
options.ModelBinderProviders.Insert(0, new NoFallbackListBinderProvider());
diff --git a/src/VanDerHeijden.JsonBodyProvider/JsonBodyValueProviderFactory.cs b/src/VanDerHeijden.JsonBodyProvider/JsonBodyValueProviderFactory.cs
index 975e6e2..aee176c 100644
--- a/src/VanDerHeijden.JsonBodyProvider/JsonBodyValueProviderFactory.cs
+++ b/src/VanDerHeijden.JsonBodyProvider/JsonBodyValueProviderFactory.cs
@@ -4,7 +4,7 @@ using System.Text.Json.Nodes;
namespace VanDerHeijden.JsonBodyProvider;
-internal class JsonBodyValueProviderFactory : IValueProviderFactory
+internal class JsonBodyValueProviderFactory(bool ParseHeaders, bool ParseCookies) : IValueProviderFactory
{
public async Task CreateValueProviderAsync(ValueProviderFactoryContext context)
{
@@ -29,14 +29,20 @@ internal class JsonBodyValueProviderFactory : IValueProviderFactory
request.Body.Position = 0;
}
- foreach (var header in request.Headers)
+ if (ParseHeaders)
{
- if (header.Value.FirstOrDefault() is { } value)
- values.TryAdd(header.Key, JsonValue.Create(value));
+ foreach (var header in request.Headers)
+ {
+ if (header.Value.FirstOrDefault() is { } value)
+ values.TryAdd(header.Key, JsonValue.Create(value));
+ }
}
- foreach (var cookie in request.Cookies)
- values.TryAdd(cookie.Key, JsonValue.Create(cookie.Value));
+ if (ParseCookies)
+ {
+ foreach (var cookie in request.Cookies)
+ values.TryAdd(cookie.Key, JsonValue.Create(cookie.Value));
+ }
context.ValueProviders.Add(new JsonBodyValueProvider(values));
}
diff --git a/src/VanDerHeijden.JsonBodyProvider/VanDerHeijden.JsonBodyProvider.csproj b/src/VanDerHeijden.JsonBodyProvider/VanDerHeijden.JsonBodyProvider.csproj
index 26954b4..5bc5a07 100644
--- a/src/VanDerHeijden.JsonBodyProvider/VanDerHeijden.JsonBodyProvider.csproj
+++ b/src/VanDerHeijden.JsonBodyProvider/VanDerHeijden.JsonBodyProvider.csproj
@@ -14,7 +14,7 @@
<PackageLicenseExpression>GPL-3.0-or-later</PackageLicenseExpression>
<PackageTags>Microsoft;AspNetCore;Mvc;AspNetCoreMvc;json</PackageTags>
<PackageIcon>icon.png</PackageIcon>
- <Version>10.0.3</Version>
+ <Version>10.0.4</Version>
</PropertyGroup>
<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App" />
diff --git a/test/VanDerHeijden.JsonBodyProviderTest/Controllers/FirstController.cs b/test/VanDerHeijden.JsonBodyProviderTest/Controllers/FirstController.cs
index 68c0fa9..b3b1dca 100644
--- a/test/VanDerHeijden.JsonBodyProviderTest/Controllers/FirstController.cs
+++ b/test/VanDerHeijden.JsonBodyProviderTest/Controllers/FirstController.cs
@@ -7,6 +7,7 @@ public class FirstController : ControllerBase
{
[HttpPost("Test")]
public IActionResult Test(
+ string EventName,
string UserId,
DateTime Timestamp,
int Value,
@@ -26,6 +27,7 @@ public class FirstController : ControllerBase
{
return Ok(new
{
+ EventName,
UserId,
Timestamp,
Value,
diff --git a/test/VanDerHeijden.JsonBodyProviderTest/Program.cs b/test/VanDerHeijden.JsonBodyProviderTest/Program.cs
index cfe1420..d6c1ba7 100644
--- a/test/VanDerHeijden.JsonBodyProviderTest/Program.cs
+++ b/test/VanDerHeijden.JsonBodyProviderTest/Program.cs
@@ -3,7 +3,7 @@ using VanDerHeijden.JsonBodyProvider;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllers();
-builder.Services.AddJsonProviders(CorrectLists: false);
+builder.Services.AddJsonBodyProvider();
var app = builder.Build();
diff --git a/test/VanDerHeijden.JsonBodyProviderTest/Properties/launchSettings.json b/test/VanDerHeijden.JsonBodyProviderTest/Properties/launchSettings.json
index 1946cb0..e946a70 100644
--- a/test/VanDerHeijden.JsonBodyProviderTest/Properties/launchSettings.json
+++ b/test/VanDerHeijden.JsonBodyProviderTest/Properties/launchSettings.json
@@ -1,14 +1,14 @@
-{
- "$schema": "https://json.schemastore.org/launchsettings.json",
+{
"profiles": {
"http": {
"commandName": "Project",
- "dotnetRunMessages": true,
- "launchBrowser": false,
- "applicationUrl": "http://localhost:5129",
+ "launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
- }
+ },
+ "dotnetRunMessages": true,
+ "applicationUrl": "http://localhost:5129"
}
- }
-}
+ },
+ "$schema": "https://json.schemastore.org/launchsettings.json"
+}
\ No newline at end of file