private void PerformSyncAuditing(IInvocation invocation, AuditInfo auditInfo) { var stopwatch = Stopwatch.StartNew(); try { invocation.Proceed(); } catch (Exception ex) { auditInfo.Exception = ex; throw; } finally { stopwatch.Stop(); auditInfo.ExecutionDuration = Convert.ToInt32(stopwatch.Elapsed.TotalMilliseconds); if (_auditingConfiguration.SaveReturnValues && invocation.ReturnValue != null) { auditInfo.ReturnValue = _auditSerializer.Serialize(invocation.ReturnValue); } _auditingHelper.Save(auditInfo); } }
private void PerformSyncAuditing(IInvocation invocation, AuditInfo auditInfo) { var stopwatch = Stopwatch.StartNew(); try { invocation.Proceed(); } catch (Exception ex) { auditInfo.Exception = ex; throw; } finally { stopwatch.Stop(); auditInfo.ExecutionDuration = Convert.ToInt32(stopwatch.Elapsed.TotalMilliseconds); _auditingHelper.Save(auditInfo); } }
public void OnActionExecuted(ActionExecutedContext filterContext) { var auditData = AbpAuditFilterData.GetOrNull(filterContext.HttpContext); if (auditData == null) { return; } auditData.Stopwatch.Stop(); auditData.AuditInfo.ExecutionDuration = Convert.ToInt32(auditData.Stopwatch.Elapsed.TotalMilliseconds); auditData.AuditInfo.Exception = filterContext.Exception; _auditingHelper.Save(auditData.AuditInfo); }
public void OnActionExecuted(ActionExecutedContext filterContext) { var auditData = AprilAuditFilterData.GetOrNull(filterContext.HttpContext); //从httpContext中获取AprilAuditFilterData if (auditData == null) //如果为空则说明不需要审计 { return; } auditData.Stopwatch.Stop(); //更新auditInfo实体 auditData.AuditInfo.ExecutionDuration = Convert.ToInt32(auditData.Stopwatch.Elapsed.TotalMilliseconds); auditData.AuditInfo.Exception = filterContext.Exception; _auditingHelper.Save(auditData.AuditInfo);//保存 }
public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next) { if (!ShouldAudit(context)) { await next(); return; } if (context.ActionDescriptor is ControllerActionDescriptor descriptor) { var auditInfo = _helper.BuildAuditInfo( descriptor.ControllerTypeInfo, descriptor.MethodInfo, context.ActionArguments ); var stopwatch = Stopwatch.StartNew(); try { var result = await next(); if (result.Exception != null && !result.ExceptionHandled) { auditInfo.Exception = result.Exception; } } catch (Exception ex) { auditInfo.Exception = ex; throw; } finally { stopwatch.Stop(); auditInfo.ExecutionDuration = Convert.ToInt32(stopwatch.Elapsed.TotalMilliseconds); _helper.Save(auditInfo); } } }
public void OnActionExecuted(ActionExecutedContext filterContext) { var auditData = AbpAuditFilterData.GetOrNull(filterContext.HttpContext); if (auditData == null) { return; } auditData.Stopwatch.Stop(); auditData.AuditInfo.ExecutionDuration = Convert.ToInt32(auditData.Stopwatch.Elapsed.TotalMilliseconds); auditData.AuditInfo.Exception = filterContext.Exception; if (_auditingConfiguration.SaveReturnValues && filterContext.Result != null) { switch (filterContext.Result) { case AbpJsonResult abpJsonResult: if (abpJsonResult.Data is AjaxResponse ajaxResponse) { auditData.AuditInfo.ReturnValue = _auditSerializer.Serialize(ajaxResponse.Result); } else { auditData.AuditInfo.ReturnValue = _auditSerializer.Serialize(abpJsonResult.Data); } break; case JsonResult jsonResult: auditData.AuditInfo.ReturnValue = _auditSerializer.Serialize(jsonResult.Data); break; case ContentResult contentResult: auditData.AuditInfo.ReturnValue = contentResult.Content; break; } } _auditingHelper.Save(auditData.AuditInfo); }
public override void InterceptSynchronous(IInvocation invocation) { if (AbpCrossCuttingConcerns.IsApplied(invocation.InvocationTarget, AbpCrossCuttingConcerns.Auditing)) { invocation.Proceed(); return; } if (!_auditingHelper.ShouldSaveAudit(invocation.MethodInvocationTarget)) { invocation.Proceed(); return; } var auditInfo = _auditingHelper.CreateAuditInfo(invocation.TargetType, invocation.MethodInvocationTarget, invocation.Arguments); var stopwatch = Stopwatch.StartNew(); try { invocation.Proceed(); } catch (Exception ex) { auditInfo.Exception = ex; throw; } finally { stopwatch.Stop(); auditInfo.ExecutionDuration = Convert.ToInt32(stopwatch.Elapsed.TotalMilliseconds); if (_auditingConfiguration.SaveReturnValues && invocation.ReturnValue != null) { auditInfo.ReturnValue = _auditSerializer.Serialize(invocation.ReturnValue); } _auditingHelper.Save(auditInfo); } }