ApprovalFlowMiddleware.cs 993 B

12345678910111213141516171819202122232425262728293031323334353637
  1. using Admin.NET.Plugin.ApprovalFlow.Service;
  2. using Microsoft.AspNetCore.Builder;
  3. using Microsoft.AspNetCore.Http;
  4. namespace Admin.NET.Plugin.ApprovalFlow;
  5. public static class ApprovalFlowMiddlewareExtensions
  6. {
  7. public static IApplicationBuilder UseApprovalFlow(this IApplicationBuilder builder)
  8. {
  9. return builder.UseMiddleware<ApprovalFlowMiddleware>();
  10. }
  11. }
  12. /// <summary>
  13. /// 审批流中间件 — 可选审计模式(B8 fix: 改用 InvokeAsync 参数注入)
  14. /// </summary>
  15. public class ApprovalFlowMiddleware
  16. {
  17. private readonly RequestDelegate _next;
  18. public ApprovalFlowMiddleware(RequestDelegate next)
  19. {
  20. _next = next;
  21. }
  22. public async Task InvokeAsync(HttpContext context, SysApprovalService sysApprovalService)
  23. {
  24. var enabled = App.GetConfig<bool>("ApprovalFlow:AuditEnabled", false);
  25. if (enabled)
  26. {
  27. await sysApprovalService.MatchApproval(context);
  28. }
  29. await _next(context);
  30. }
  31. }