namespace Yes.Blog.Endpoints.Admins.Themes { public class UpdateThemeEndpoint : ThemeEndpointScheme, IEndpoint { public void Map(IEndpointRouteBuilder app) => app.MapPut("/themes", Handle).WithRequestValidation(); internal record Request( string Theme ); internal class RequestValidator : AbstractValidator { public RequestValidator() { RuleFor(x => x.Theme).NotEmpty().WithMessage("请选择主题!"); } } private async Task Handle([FromBody] Request request, IMediator mediator, IMapper mapper, CancellationToken cancellationToken) { var command = mapper.Map(request); var response = await mediator.Send(command, cancellationToken); return Result.Ok(response); } } internal class UpdateThemeMappingProfile : IRegister { public void Register(TypeAdapterConfig config) { config.ForType(); } } }