Я пытаюсь вызвать дескриптор, чтобы вернуть значения с уровня приложения. Я использую шаблон посредника. Я пробовал позвонить, но не смог из-за отсутствия опыта.
Конечная точка:
using CleanAchitecture.Security.Api.Filters;
using CleanAchitecture.Security.Application.Abstractions.Messaging;
using CleanAchitecture.Security.Application.Contracts.User;
using CleanAchitecture.Security.Application.User;
using Microsoft.AspNetCore.Mvc;
namespace CleanAchitecture.Security.Api.Endpoints
{
internal sealed class User : IEndpoint
{
public void MapEndpoint(IEndpointRouteBuilder app)
{
app.MapPost("todos", async (
CreateUserRequest request,
[FromServices] ICommandHandler handler,
CancellationToken cancellationToken) =>
{
var result = await handler.Handle(new CreateUserComand { CreateUserRequest = request }, cancellationToken);
return result;
})
.AddEndpointFilter(new AuthorizationFilter("apiii"));//Here
}
}
}
< /code>
Это фильтр, который я хочу выполнить команду, чтобы вернуть значение, если оно является действительным или нет. < /p>
«createUserComand» не содержит определения для «ручки», а также метод доступного расширения, который принимает первый аргумент «CreateUsercome» (вы не упускаете в виду или используют, используете ли вы, используете Pired Extension Dipective или Asseive, используйте PIRTIVE или ASTARIVIVIVIVE или ASTARIVIN /> < /blockquote>
using CleanAchitecture.Security.Application.User;
using CleanAchitecture.Security.Domain.Common;
using System.Threading;
namespace CleanAchitecture.Security.Api.Filters
{
public class AuthorizationFilter(string api) : IEndpointFilter
{
public async ValueTask InvokeAsync(EndpointFilterInvocationContext context, EndpointFilterDelegate next)
{
var handler = new CreateUserComand();
var result = await handler.Handle(new CreateUserComand { CreateUserRequest = request });
if(result != null) return await next(context);
return Result.BadRequest();
}
}
}
Я пытаюсь вызвать дескриптор, чтобы вернуть значения с уровня приложения. Я использую шаблон посредника. Я пробовал позвонить, но не смог из-за отсутствия опыта. Конечная точка: [code]using CleanAchitecture.Security.Api.Filters; using CleanAchitecture.Security.Application.Abstractions.Messaging; using CleanAchitecture.Security.Application.Contracts.User; using CleanAchitecture.Security.Application.User; using Microsoft.AspNetCore.Mvc;
namespace CleanAchitecture.Security.Api.Endpoints { internal sealed class User : IEndpoint { public void MapEndpoint(IEndpointRouteBuilder app) { app.MapPost("todos", async ( CreateUserRequest request, [FromServices] ICommandHandler handler, CancellationToken cancellationToken) => {
var result = await handler.Handle(new CreateUserComand { CreateUserRequest = request }, cancellationToken);
return result; }) .AddEndpointFilter(new AuthorizationFilter("apiii"));//Here } } } < /code> Это фильтр, который я хочу выполнить команду, чтобы вернуть значение, если оно является действительным или нет. < /p>
«createUserComand» не содержит определения для «ручки», а также метод доступного расширения, который принимает первый аргумент «CreateUsercome» (вы не упускаете в виду или используют, используете ли вы, используете Pired Extension Dipective или Asseive, используйте PIRTIVE или ASTARIVIVIVIVE или ASTARIVIN /> < /blockquote> using CleanAchitecture.Security.Application.User; using CleanAchitecture.Security.Domain.Common; using System.Threading;
namespace CleanAchitecture.Security.Api.Filters { public class AuthorizationFilter(string api) : IEndpointFilter { public async ValueTask InvokeAsync(EndpointFilterInvocationContext context, EndpointFilterDelegate next) {
var handler = new CreateUserComand();
var result = await handler.Handle(new CreateUserComand { CreateUserRequest = request }); if(result != null) return await next(context);
return Result.BadRequest(); } } } [/code] createUserCommand : [code]using CleanAchitecture.Security.Application.Abstractions.Messaging; using CleanAchitecture.Security.Application.Contracts.User; using CleanAchitecture.Security.Domain.Common; using CleanAchitecture.Security.Domain.Entities; using CleanAchitecture.Security.Infrastructure.Interface; using FluentValidation;
namespace CleanAchitecture.Security.Application.User { #region command public sealed record CreateUserComand : ICommand { public CreateUserRequest CreateUserRequest { get; set; } }; #endregion
#region command handler internal sealed class CreateUserCommandHandler( IUserRepository IUserRepository ) : ICommandHandler { public async Task Handle(CreateUserComand command, CancellationToken cancellationToken) { var securityUser = new SecurityUser { Id = "", Name = command.CreateUserRequest.Name, Password = command.CreateUserRequest.Password, ProfileId = command.CreateUserRequest.ProfileId,
#region command validator internal sealed class CreateUserCommandValidator : AbstractValidator { public CreateUserCommandValidator() { RuleFor(c => c.CreateUserRequest.Name).NotEmpty(); RuleFor(c => c.CreateUserRequest.Password).NotEmpty(); RuleFor(c => c.CreateUserRequest.ProfileId).NotEmpty(); } } #endregion } [/code] Не могли бы вы помочь мне устранить эту ошибку?