diff --git a/src/Shiny.Mediator.AspNet/Infrastructure/MediatorContractModelBinder.cs b/src/Shiny.Mediator.AspNet/Infrastructure/MediatorContractModelBinder.cs index f36931b..35c14a1 100644 --- a/src/Shiny.Mediator.AspNet/Infrastructure/MediatorContractModelBinder.cs +++ b/src/Shiny.Mediator.AspNet/Infrastructure/MediatorContractModelBinder.cs @@ -1,36 +1,36 @@ -using System.Reflection; -using Microsoft.AspNetCore.Mvc.ModelBinding; - -namespace Shiny.Mediator.AspNet.Infrastructure; - -public class MediatorContractModelBinder : IModelBinder -{ - public Task BindModelAsync(ModelBindingContext bindingContext) - { - var type = bindingContext.Model!.GetType(); - if (type.IsValueType) - { - var ctor = type.GetConstructors().Single(); - var parameters = ctor.GetParameters(); - foreach (var p in parameters) - { - var result = bindingContext.ValueProvider.GetValue(p.Name); - } - //Activator.CreateInstance() - } - else - { - var props = type - .GetProperties(BindingFlags.Public | BindingFlags.Instance) - .Where(x => x.CanWrite) - .ToList(); - - foreach (var prop in props) - { - var result = bindingContext.ValueProvider.GetValue(prop.Name); - } - } - // bindingContext.ActionContext.RouteData.Values - return Task.CompletedTask; - } -} \ No newline at end of file +// using System.Reflection; +// using Microsoft.AspNetCore.Mvc.ModelBinding; +// +// namespace Shiny.Mediator.AspNet.Infrastructure; +// +// public class MediatorContractModelBinder : IModelBinder +// { +// public Task BindModelAsync(ModelBindingContext bindingContext) +// { +// var type = bindingContext.Model!.GetType(); +// if (type.IsValueType) +// { +// var ctor = type.GetConstructors().Single(); +// var parameters = ctor.GetParameters(); +// foreach (var p in parameters) +// { +// var result = bindingContext.ValueProvider.GetValue(p.Name); +// } +// //Activator.CreateInstance() +// } +// else +// { +// var props = type +// .GetProperties(BindingFlags.Public | BindingFlags.Instance) +// .Where(x => x.CanWrite) +// .ToList(); +// +// foreach (var prop in props) +// { +// var result = bindingContext.ValueProvider.GetValue(prop.Name); +// } +// } +// // bindingContext.ActionContext.RouteData.Values +// return Task.CompletedTask; +// } +// } \ No newline at end of file diff --git a/src/Shiny.Mediator.AspNet/WebApplicationExtensions.cs b/src/Shiny.Mediator.AspNet/WebApplicationExtensions.cs index 789aac6..7dafe1a 100644 --- a/src/Shiny.Mediator.AspNet/WebApplicationExtensions.cs +++ b/src/Shiny.Mediator.AspNet/WebApplicationExtensions.cs @@ -274,36 +274,22 @@ public static void MapResultType(WebApplication app, Mediator { routerBuilder = app.MapPost( attribute.UriTemplate, - async ( + ( [FromServices] IMediator mediator, [FromBody] TRequest request, CancellationToken cancellationToken - ) => - { - var result = await mediator - .Request(request, cancellationToken) - .ConfigureAwait(false); - - return Results.Ok(result); - } + ) => mediator.Request(request, cancellationToken) ); } else if (attribute.Method == HttpMethod.Put) { routerBuilder = app.MapGet( attribute.UriTemplate, - async ( + ( [FromServices] IMediator mediator, [FromBody] TRequest request, CancellationToken cancellationToken - ) => - { - var result = await mediator - .Request(request, cancellationToken) - .ConfigureAwait(false); - - return Results.Ok(result); - } + ) => mediator.Request(request, cancellationToken) ); } else if (attribute.Method == HttpMethod.Get)