AipApiAsyncActionFilter.cs 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. using AipGateway.API.Service.Controllers;
  2. using AipGateway.Data;
  3. using AipGateway.Data.Entities;
  4. using Microsoft.AspNetCore.Mvc;
  5. using Microsoft.AspNetCore.Mvc.Filters;
  6. using System.Security;
  7. namespace AipGateway.API.Service.Filters
  8. {
  9. public class AipApiAsyncActionFilter : IAsyncActionFilter
  10. {
  11. private readonly ILogger _logger;
  12. private readonly AipDbContext _aipDb = null;
  13. public AipApiAsyncActionFilter(ILogger<AipApiAsyncActionFilter> logger, AipDbContext aipDb)
  14. {
  15. _logger = logger;
  16. _aipDb = aipDb;
  17. _logger.LogError("bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb: AipApiAsyncActionFilter");
  18. }
  19. public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
  20. {
  21. long startTicks = DateTime.UtcNow.Ticks;
  22. string apiPath = context.HttpContext.Request.Path;
  23. DateTime StartedAt = DateTime.UtcNow;
  24. //_logger.LogError("OnActionExecutionAsync Before: {0}", context.ToString());
  25. //if (context.Controller.GetType() == typeof(AipFileController))
  26. //{
  27. // AipFileController aipFileController = (AipFileController)context.Controller;
  28. // _logger.LogError("OnActionExecutionAsync aipFileController: {0}", context.HttpContext.Request.Path);
  29. // var apiKey = context.HttpContext.Request.Query["apiKey"];
  30. // if (apiKey[0] != null)
  31. // {
  32. // _logger.LogError("OnActionExecutionAsync apiKey: {0}", apiKey[0]);
  33. // }
  34. //}
  35. await next();
  36. //long endTicks = DateTime.UtcNow.Ticks;
  37. //long elapsedTicks = DateTime.UtcNow.Ticks - startTicks;
  38. TimeSpan elapsedSpan = new TimeSpan(DateTime.UtcNow.Ticks - startTicks);
  39. _logger.LogError("OnActionExecutionAsync: {0}, : {1} ms", apiPath, elapsedSpan.TotalMilliseconds);
  40. TbAipApiCallLog callLog = new TbAipApiCallLog
  41. {
  42. Id = 1,
  43. LogDate = DateTime.UtcNow,
  44. ApiId = 1,
  45. ApiGuid = apiPath,
  46. StartedAt = StartedAt,
  47. CompletedAt = DateTime.UtcNow,
  48. CallIpAddr = context.HttpContext?.Connection?.RemoteIpAddress?.ToString(),
  49. CallResult = "0",
  50. CallMessage = "Success",
  51. };
  52. _aipDb.AipApiCallLogs.Add(callLog);
  53. _aipDb.SaveChanges();
  54. //long userId = 1;
  55. // long organizationId = context.HttpContext.GetTenantIdentifier();
  56. //long organizationId = 1;
  57. //if (await _roleVerificationRepository.VerifyUser(userId, organizationId, _permission) == false)
  58. //{
  59. // context.Result = new StatusCodeResult(StatusCodes.Status403Forbidden);
  60. // return;
  61. //}
  62. //await next();
  63. }
  64. }
  65. }