ApprovalFlowMiddleware.cs 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. // 此源代码遵循位于源代码树根目录中的 LICENSE 文件的许可证。
  2. //
  3. // 必须在法律法规允许的范围内正确使用,严禁将其用于非法、欺诈、恶意或侵犯他人合法权益的目的。
  4. using Admin.NET.Plugin.Flow.Service;
  5. using Microsoft.AspNetCore.Builder;
  6. using Microsoft.AspNetCore.Http;
  7. namespace Admin.NET.Plugin.Flow;
  8. /// <summary>
  9. /// 扩展审批流中间件
  10. /// </summary>
  11. public static class ApprovalFlowMiddlewareExtensions
  12. {
  13. /// <summary>
  14. /// 使用审批流
  15. /// </summary>
  16. /// <param name="builder"></param>
  17. /// <returns></returns>
  18. public static IApplicationBuilder UseApprovalFlow(this IApplicationBuilder builder)
  19. {
  20. return builder.UseMiddleware<ApprovalFlowMiddleware>();
  21. }
  22. }
  23. /// <summary>
  24. /// 审批流中间件
  25. /// </summary>
  26. public class ApprovalFlowMiddleware
  27. {
  28. private readonly RequestDelegate _next;
  29. public ApprovalFlowMiddleware(RequestDelegate next)
  30. {
  31. _next = next;
  32. }
  33. public async Task Invoke(HttpContext context)
  34. {
  35. await App.GetService<SysApprovalService>().MatchApproval(context);
  36. await _next.Invoke(context);
  37. }
  38. }