Skip to content

Commit 4e00bfa

Browse files
Some optimizations
1 parent 749d253 commit 4e00bfa

File tree

5 files changed

+36
-18
lines changed

5 files changed

+36
-18
lines changed

Modules/Controllers/Extensions.cs

+13-7
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using GenHTTP.Api.Infrastructure;
44

55
using GenHTTP.Modules.Controllers.Provider;
6+
using GenHTTP.Modules.Conversion.Formatters;
67
using GenHTTP.Modules.Conversion.Providers;
78
using GenHTTP.Modules.Layouting.Provider;
89
using GenHTTP.Modules.Reflection.Injectors;
@@ -22,9 +23,9 @@ public static class Extensions
2223
/// <param name="path">The path that should be handled by the controller</param>
2324
/// <param name="injectors">Optionally the injectors to be used by this controller</param>
2425
/// <param name="formats">Optionally the formats to be used by this controller</param>
25-
public static LayoutBuilder AddController<[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)] T>(this LayoutBuilder builder, string path, IBuilder<InjectionRegistry>? injectors = null, IBuilder<SerializationRegistry>? formats = null) where T : new()
26+
public static LayoutBuilder AddController<[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)] T>(this LayoutBuilder builder, string path, IBuilder<InjectionRegistry>? injectors = null, IBuilder<SerializationRegistry>? serializers = null, IBuilder<FormatterRegistry>? formatters = null) where T : new()
2627
{
27-
builder.Add(path, Controller.From<T>().Configured(injectors, formats));
28+
builder.Add(path, Controller.From<T>().Configured(injectors, serializers, formatters));
2829
return builder;
2930
}
3031

@@ -36,22 +37,27 @@ public static class Extensions
3637
/// <param name="builder">The layout the controller should be added to</param>
3738
/// <param name="injectors">Optionally the injectors to be used by this controller</param>
3839
/// <param name="formats">Optionally the formats to be used by this controller</param>
39-
public static LayoutBuilder IndexController<[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)] T>(this LayoutBuilder builder, IBuilder<InjectionRegistry>? injectors = null, IBuilder<SerializationRegistry>? formats = null) where T : new()
40+
public static LayoutBuilder IndexController<[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)] T>(this LayoutBuilder builder, IBuilder<InjectionRegistry>? injectors = null, IBuilder<SerializationRegistry>? serializers = null, IBuilder<FormatterRegistry>? formatters = null) where T : new()
4041
{
41-
builder.Add(Controller.From<T>().Configured(injectors, formats));
42+
builder.Add(Controller.From<T>().Configured(injectors, serializers, formatters));
4243
return builder;
4344
}
4445

45-
private static ControllerBuilder<T> Configured<T>(this ControllerBuilder<T> builder, IBuilder<InjectionRegistry>? injectors = null, IBuilder<SerializationRegistry>? formats = null) where T : new()
46+
private static ControllerBuilder<T> Configured<T>(this ControllerBuilder<T> builder, IBuilder<InjectionRegistry>? injectors = null, IBuilder<SerializationRegistry>? serializers = null, IBuilder<FormatterRegistry>? formatters = null) where T : new()
4647
{
4748
if (injectors != null)
4849
{
4950
builder.Injectors(injectors);
5051
}
5152

52-
if (formats != null)
53+
if (serializers != null)
5354
{
54-
builder.Serializers(formats);
55+
builder.Serializers(serializers);
56+
}
57+
58+
if (formatters != null)
59+
{
60+
builder.Formatters(formatters);
5561
}
5662

5763
return builder;

Modules/Functional/Provider/InlineBuilder.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88

99
using GenHTTP.Modules.Conversion;
1010
using GenHTTP.Modules.Conversion.Providers;
11+
using GenHTTP.Modules.Conversion.Formatters;
1112
using GenHTTP.Modules.Reflection.Injectors;
1213
using GenHTTP.Modules.Reflection;
13-
using GenHTTP.Modules.Conversion.Formatters;
1414

1515
namespace GenHTTP.Modules.Functional.Provider
1616
{

Modules/Webservices/Extensions.cs

+13-8
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
using System.Diagnostics.CodeAnalysis;
22

33
using GenHTTP.Api.Infrastructure;
4-
4+
using GenHTTP.Modules.Conversion.Formatters;
55
using GenHTTP.Modules.Conversion.Providers;
66
using GenHTTP.Modules.Layouting.Provider;
77
using GenHTTP.Modules.Reflection.Injectors;
@@ -24,9 +24,9 @@ public static class Extensions
2424
/// <param name="path">The path the resource should be available at</param>
2525
/// <param name="injectors">Optionally the injectors to be used by this service</param>
2626
/// <param name="formats">Optionally the formats to be used by this service</param>
27-
public static LayoutBuilder AddService<[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)] T>(this LayoutBuilder layout, string path, IBuilder<InjectionRegistry>? injectors = null, IBuilder<SerializationRegistry>? formats = null) where T : new()
27+
public static LayoutBuilder AddService<[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)] T>(this LayoutBuilder layout, string path, IBuilder<InjectionRegistry>? injectors = null, IBuilder<SerializationRegistry>? serializers = null, IBuilder<FormatterRegistry>? formatters = null) where T : new()
2828
{
29-
return layout.Add(path, ServiceResource.From<T>().Configured(injectors, formats));
29+
return layout.Add(path, ServiceResource.From<T>().Configured(injectors, serializers, formatters));
3030
}
3131

3232
/// <summary>
@@ -37,21 +37,26 @@ public static class Extensions
3737
/// <param name="instance">The webservice resource instance</param>
3838
/// <param name="injectors">Optionally the injectors to be used by this service</param>
3939
/// <param name="formats">Optionally the formats to be used by this service</param>
40-
public static LayoutBuilder AddService(this LayoutBuilder layout, string path, object instance, IBuilder<InjectionRegistry>? injectors = null, IBuilder<SerializationRegistry>? formats = null)
40+
public static LayoutBuilder AddService(this LayoutBuilder layout, string path, object instance, IBuilder<InjectionRegistry>? injectors = null, IBuilder<SerializationRegistry>? serializers = null, IBuilder<FormatterRegistry>? formatters = null)
4141
{
42-
return layout.Add(path, ServiceResource.From(instance).Configured(injectors, formats));
42+
return layout.Add(path, ServiceResource.From(instance).Configured(injectors, serializers, formatters));
4343
}
4444

45-
private static ServiceResourceBuilder Configured(this ServiceResourceBuilder builder, IBuilder<InjectionRegistry>? injectors = null, IBuilder<SerializationRegistry>? formats = null)
45+
private static ServiceResourceBuilder Configured(this ServiceResourceBuilder builder, IBuilder<InjectionRegistry>? injectors = null, IBuilder<SerializationRegistry>? serializers = null, IBuilder<FormatterRegistry>? formatters = null)
4646
{
4747
if (injectors != null)
4848
{
4949
builder.Injectors(injectors);
5050
}
5151

52-
if (formats != null)
52+
if (serializers != null)
53+
{
54+
builder.Serializers(serializers);
55+
}
56+
57+
if (formatters != null)
5358
{
54-
builder.Serializers(formats);
59+
builder.Formatters(formatters);
5560
}
5661

5762
return builder;

Testing/Acceptance/Modules/Controllers/DataTests.cs

+4-1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
using System.Threading.Tasks;
66

77
using GenHTTP.Api.Protocol;
8+
89
using GenHTTP.Modules.Controllers;
910
using GenHTTP.Modules.Conversion;
1011
using GenHTTP.Modules.Layouting;
@@ -80,7 +81,9 @@ public async Task TestInvalidDateOnly()
8081
private static TestHost GetHost()
8182
{
8283
var app = Layout.Create()
83-
.AddController<TestController>("t", formats: Serialization.Default(), injectors: Injection.Default());
84+
.AddController<TestController>("t", serializers: Serialization.Default(),
85+
injectors: Injection.Default(),
86+
formatters: Formatting.Default());
8487

8588
return TestHost.Run(app);
8689
}

Testing/Acceptance/Modules/Webservices/ResultTypeTests.cs

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
using System.Net;
22
using System.Threading.Tasks;
33

4+
using GenHTTP.Modules.Conversion;
45
using GenHTTP.Modules.Layouting;
6+
using GenHTTP.Modules.Reflection;
57
using GenHTTP.Modules.Webservices;
68

79
using Microsoft.VisualStudio.TestTools.UnitTesting;
@@ -84,7 +86,9 @@ public async Task ControllerMayReturnGenericValueTask()
8486

8587
private TestHost GetRunner()
8688
{
87-
return TestHost.Run(Layout.Create().AddService<TestResource>("t"));
89+
return TestHost.Run(Layout.Create().AddService<TestResource>("t", serializers: Serialization.Default(),
90+
injectors: Injection.Default(),
91+
formatters: Formatting.Default()));
8892
}
8993

9094
#endregion

0 commit comments

Comments
 (0)