Ejemplo n.º 1
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="options"></param>
 /// <param name="serviceProvider"></param>
 protected SuktDbContextBase(DbContextOptions options, IServiceProvider serviceProvider) : base(options)
 {
     _serviceProvider            = serviceProvider;
     _appOptionSettings          = serviceProvider.GetAppSettings();
     this._logger                = serviceProvider.GetLogger(GetType());
     _auditEntryDictionaryScoped = serviceProvider.GetService <AuditEntryDictionaryScoped>();
     _changeTracker              = _serviceProvider.GetService <IGetChangeTracker>();
     _principal = serviceProvider.GetService <IPrincipal>();
 }
Ejemplo n.º 2
0
        /// <summary>
        /// 方法执行中
        /// </summary>
        /// <param name="context"></param>
        public void OnActionExecuting(ActionExecutingContext context)
        {
            IServiceProvider serviceProvider = context.HttpContext.RequestServices;
            var controllerAction             = context.ActionDescriptor as ControllerActionDescriptor;
            var isAuditEnabled = serviceProvider.GetAppSettings().AuditEnabled;

            if (isAuditEnabled)
            {
                AuditEntryDictionaryScoped auditEntryDictionaryScoped = serviceProvider.GetService <AuditEntryDictionaryScoped>();
                AuditChangeInputDto        auditChange = new AuditChangeInputDto();
                auditChange.BrowserInformation = context.HttpContext.Request.Headers["User-Agent"].ToString();
                auditChange.Ip           = context.HttpContext.GetClientIP();
                auditChange.FunctionName = $"{context.Controller.GetType().ToDescription()}-{controllerAction.MethodInfo.ToDescription()}";
                auditChange.Action       = context.HttpContext.Request.Path;
                auditChange.StartTime    = DateTime.Now;
                auditEntryDictionaryScoped.AuditChange = auditChange;
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 执行行动时
        /// </summary>
        /// <param name="context"></param>
        public void OnActionExecuted(ActionExecutedContext context)
        {
            if (context.Result is ObjectResult result)
            {
                if (result.Value is AjaxResult ajax)
                {
                    var type = ajax.Type;
                    IServiceProvider provider = context.HttpContext.RequestServices;

                    AuditEntryDictionaryScoped dict = provider.GetService <AuditEntryDictionaryScoped>();
                    if (!ajax.Success)
                    {
                        dict.AuditChange.Message = ajax.Message;
                    }

                    dict.AuditChange.ResultType = type;
                }
            }
        }