Exemple #1
0
        public async Task SaveAudit(AuditChangeInputDto audit)
        {
            List <AuditEntry>          auditEntry         = new List <AuditEntry>();
            List <AuditPropertysEntry> auditpropertyentry = new List <AuditPropertysEntry>();
            AuditLog auditLog = new AuditLog();

            auditLog.BrowserInformation = audit.BrowserInformation;
            auditLog.Action             = audit.Action;
            auditLog.Ip                = audit.Ip;
            auditLog.FunctionName      = audit.FunctionName;
            auditLog.ExecutionDuration = audit.ExecutionDuration;
            //auditLog.UserId = audit.UserId;
            auditLog.ResultType = audit.ResultType;
            auditLog.Message    = audit.Message;
            foreach (var item in audit.AuditEntryInputDtos)
            {
                var model = item.MapTo <AuditEntry>();
                model.AuditLogId = auditLog.Id;
                foreach (var Property in item.PropertysEntryInputDto)
                {
                    var propertymodel = Property.MapTo <AuditPropertysEntry>();
                    propertymodel.AuditEntryId = model.Id;
                    auditpropertyentry.Add(propertymodel);
                }
                auditEntry.Add(model);
            }
            await _auditLogRepository.InsertAsync(auditLog);

            await _auditEntryRepository.InsertAsync(auditEntry.ToArray());

            await _auditPropertysEntryRepository.InsertAsync(auditpropertyentry.ToArray());
        }
Exemple #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;
            }
        }