public async Task <ApiResult <object> > ReportAsync(AdminLogDto dto) { var result = await _adminLogService.ReportAsync(dto); return(new ApiResult <object>() { Code = result.Result ? (int)ApiResultCode.Success : (int)ApiResultCode.UnknownError, Data = null, Message = result.Result ? "成功" : result.Message }); }
public async Task Write(AdminLogDto log) { try { var logModel = ModelConvertUtil <AdminLogDto, AdminLogInfo> .ModelCopy(log); await Task.Run(() => logRepository.InsertAsync(logModel)); } catch (Exception ex) { logger.Error(typeof(ActionLog), "AOP记录", ex); } }
public async Task <ServiceInvokeResult <bool> > ReportAsync(AdminLogDto dto) { var operationIdCorrect = await _operationIdConfigRepository.QueryAsQueryable(a => a.AppId == dto.AppId && a.OperationId == dto.OperationId).AnyAsync(); if (!operationIdCorrect) { return(PrintInvokeResult(false, "应用ID与操作ID不匹配")); } var aesHelper = new AesHelper(); var encryptBeforeContent = aesHelper.Encrypt(dto.BeforeContent); var encryptAfterContent = aesHelper.Encrypt(dto.AfterContent); //实例化领域模型 var administrator = new Administrator(dto.AdminId, dto.AdminName); var adminLog = new AdminLog(dto.AppId, encryptBeforeContent, encryptAfterContent, dto.LinkId, dto.OperationId, dto.OperationIP, dto.OperationRemark, dto.CreateUnixTime, administrator); //验证模型 var validationResult = new AdminLogReportValidation().Validate(adminLog); if (!validationResult.IsValid) { await _bus.RaiseEvent(new DomainNotification(nameof(AdminLogService), JsonConvert.SerializeObject(validationResult.Errors))); } //提交至仓储持久化 var addResult = await _adminLogRepository.Add(adminLog); if (addResult <= 0) { return(PrintInvokeResult(false, "日志入库失败")); } return(PrintInvokeResult(true, "上报完成")); }
private AdminLogDto CreateLog(AspectContext aspectContext) { var log = new AdminLogDto() { Title = Title, Content = aspectContext.ServiceMethod.Name }; object factory = aspectContext.ServiceProvider.GetService(typeof(IHttpContextAccessor)); HttpContext context = ((IHttpContextAccessor)factory).HttpContext; var claims = context.User.Claims.ToList(); if (claims != null && claims.Count > 0) { log.AdminID = Convert.ToInt16(claims.Find(c => c.Type == ClaimTypes.Sid).Value); } log.IP = context.Connection.RemoteIpAddress.ToString(); var paramString = "* [已加密]"; if (aspectContext.Parameters.Length == 0) { paramString = "无参"; } else if (!EncryptionParam) { var timeConverter = new IsoDateTimeConverter { DateTimeFormat = "yyyy-MM-dd HH:mm:ss" }; paramString = Newtonsoft.Json.JsonConvert.SerializeObject(aspectContext.Parameters, Newtonsoft.Json.Formatting.Indented, timeConverter); } log.Content = string.Format("请求路由:{0} 请求服务:{1} 请求参数:{2}", context.Request.Path, aspectContext.ServiceMethod.Name, paramString); log.CreateTime = DateTime.Now; return(log); }
public static AdminLogEntity EntityMap(this AdminLogDto model) { return(Mapper.Map <AdminLogEntity>(model)); }