public string InsertAuditLog(AuditLogInput input) { var auditLog = input.DtoConvertEntity <AuditLog>(); WriteData(_auditLogService.Add, auditLog); return(ValidationResult.GetData <string>(LsConstant.IdKey)); }
public async Task <PagedResultDto <AuditLogDto> > GetListAsync(AuditLogInput input) { var count = (int)await _auditLogRepository.GetCountAsync(input.StartTime, input.EndTime, input.HttpMethod, input.Url, input.UserName, input.ApplicationName, input.CorrelationId, input.MaxExecutionDuration, input.MinExecutionDuration, input.HasException, input.HttpStatusCode); var list = await _auditLogRepository.GetListAsync(input.Sorting, input.MaxResultCount, input.SkipCount, input.StartTime, input.EndTime, input.HttpMethod, input.Url, input.UserName, input.ApplicationName, input.CorrelationId, input.MaxExecutionDuration, input.MinExecutionDuration, input.HasException, input.HttpStatusCode); return(new PagedResultDto <AuditLogDto>( count, ObjectMapper.Map <List <AuditLog>, List <AuditLogDto> >(list) )); }
/// <summary> /// 获取where条件 /// </summary> /// <param name="request">请求参数</param> /// <returns>条件表达式</returns> private Expression <Func <AuditLog, bool> > GetWhereExpression(AuditLogInput request) { var expr = PredicateExtensions.True <AuditLog>(); expr = expr.And(x => x.IsDeleted == false); if (request.LogType > 0) { expr = expr.And(x => x.Type.Equals(request.LogType)); } if (!string.IsNullOrWhiteSpace(request.UserName)) { expr = expr.And(x => x.CreatedBy.Contains(request.UserName)); } if (!string.IsNullOrWhiteSpace(request.ServiceName)) { expr = expr.And(x => x.ServiceName.Contains(request.ServiceName)); } if (!string.IsNullOrWhiteSpace(request.ActionName)) { expr = expr.And(x => x.ActionName.Contains(request.ActionName)); } if (request.StartTime > new DateTime(1970, 1, 1)) { expr = expr.And(x => x.CreatedOn >= request.StartTime); } if (request.EndTime > new DateTime(1970, 1, 1)) { expr = expr.And(x => x.CreatedOn <= request.EndTime.AddDays(1).AddSeconds(-1)); } return(expr); }
public override void OnActionExecuting(HttpActionContext actionContext) { _stopwatch.Start(); // Get the request lifetime scope so you can resolve services. var requestScope = actionContext.Request.GetDependencyScope(); // Resolve the service you want to use. var auditAppService = requestScope.GetService(typeof(IAuditAppService)) as IAuditAppService; var auditLogInput = new AuditLogInput() { BrowserInfo = RequestExtend.RequestValue(LsConstant.RequestBrowser), ClientName = RequestExtend.RequestValue(LsConstant.RequestClientName), ClientIpAddress = RequestExtend.RequestValue(LsConstant.RequestClientAddress), MethodName = actionContext.Request.Method.ToString(), ApiAddress = actionContext.Request.RequestUri.LocalPath, Parameters = GetRequestParamters(actionContext), ActionName = actionContext.ActionDescriptor.ActionName, ControllerName = actionContext.ActionDescriptor.ControllerDescriptor.ControllerName, IsExecSuccess = false, ExecutionDuration = 0, }; try { auditLogInput.UserId = actionContext.Request.GetLoginUser().Id; auditLogInput.AccountName = actionContext.Request.GetLoginUser().AccountName; } catch (Exception) { } m_auditId = auditAppService.InsertAuditLog(auditLogInput); base.OnActionExecuting(actionContext); }
public async Task <PagedResultDto <AuditLogDto> > GetListAsync(AuditLogInput input) { return(await _auditLogAppService.GetListAsync(input)); }
/// <summary> /// 获取auditLog数据 /// </summary> /// <param name="input"></param> /// <returns></returns> public async Task <AuditLogOutput> GetAuditLogData(AuditLogInput input) { var linqExp = (from audit in _WorkflowDemoContext.AuditLog join user in _WorkflowDemoContext.User on audit.CreatedBy equals user.EmployeeNo into user2 from user3 in user2.DefaultIfEmpty() where (audit.IsDeleted == false && user3.IsDeleted == false) && (input.LogType <= 0 || input.LogType == audit.Type) && (string.IsNullOrWhiteSpace(input.UserName) || user3.Name.Contains(input.UserName)) && (string.IsNullOrWhiteSpace(input.UserNo) || audit.CreatedBy.Contains(input.UserNo)) && (string.IsNullOrWhiteSpace(input.ServiceName) || audit.ServiceName.Contains(input.ServiceName)) && (string.IsNullOrWhiteSpace(input.ActionName) || audit.ActionName.Contains(input.ActionName)) && (input.StartTime <= new DateTime(1900, 1, 1) || audit.CreatedOn >= input.StartTime) && (input.EndTime <= new DateTime(1900, 1, 1) || audit.CreatedOn <= input.EndTime.AddDays(1).AddSeconds(-1)) select new AuditLogOutputModel() { Id = audit.Id, LogType = audit.Type, Time = audit.CreatedOn.ToString(), UserName = user3.Name, UserNo = audit.CreatedBy, Service = audit.ServiceName, Action = audit.ActionName, Duration = audit.Duration, IPAddress = audit.Ip, ClientBrowser = audit.UserAgent }).OrderByDescending(x => x.Time); var response = new AuditLogOutput() { TotalCount = await linqExp.CountAsync(), Models = await linqExp.Skip((input.PageIndex - 1) *input.PageSize) .Take(input.PageSize) .ToListAsync() }; #region 需求变化,废弃的代码,查询user 不太方便 //var whereExpress = GetWhereExpression(input); //var count = _auditLogRepository.Entities.Count(whereExpress); //var response = new AuditLogOutput() //{ // TotalCount = count //}; //var models = await _WorkflowDemoContext.AuditLog.Where(whereExpress) // .OrderByDescending(x => x.CreatedOn) // .Skip((input.PageIndex - 1) * input.PageSize) // .Take(input.PageSize) // .GroupJoin(_WorkflowDemoContext.User.Where(x=>x.IsDeleted==false), audit => audit.CreatedBy, user => user.EmployeeNo, // (audit, user) => // new AuditLogOutputModel() // { // Id = audit.Id, // LogType = audit.Type, // Time = audit.CreatedOn.ToString(), // UserName = user.FirstOrDefault().Name, // UserNo = audit.CreatedBy, // Service = audit.ServiceName, // Action = audit.ActionName, // Duration = audit.Duration, // IPAddress = audit.Ip, // ClientBrowser = audit.UserAgent // } // ).ToListAsync(); //response.Models = models; #endregion return(response); }