public async Task <PagedResultDto <AuditLogListDto> > GetAuditLogs(GetAuditLogsInput input) { var query = CreateAuditLogAndUsersQuery(input); var resultCount = await query.CountAsync(); var results = await query .OrderBy(input.Sorting) .PageBy(input) .ToListAsync(); var auditLogListDtos = ConvertToAuditLogListDtos(results); return(new PagedResultDto <AuditLogListDto>(resultCount, auditLogListDtos)); }
public async Task <PagedResultDto <AuditLogDto> > GetAll(GetAuditLogsInput input) { var count = await _auditLogRepository.GetCountAsync(httpMethod : input.HttpMethod, url : input.Url, userName : input.UserName, applicationName : input.ApplicationName, correlationId : input.CorrelationId, maxExecutionDuration : input.MaxExecutionDuration, minExecutionDuration : input.MinExecutionDuration, hasException : input.HasException, httpStatusCode : input.HttpStatusCode); var list = await _auditLogRepository.GetListAsync(sorting : input.Sorting, maxResultCount : input.MaxResultCount, skipCount : input.SkipCount, httpMethod : input.HttpMethod, url : input.Url, userName : input.UserName, applicationName : input.ApplicationName, correlationId : input.CorrelationId, maxExecutionDuration : input.MaxExecutionDuration, minExecutionDuration : input.MinExecutionDuration, hasException : input.HasException, httpStatusCode : input.HttpStatusCode); return(new PagedResultDto <AuditLogDto>( count, ObjectMapper.Map <List <AuditLog>, List <AuditLogDto> >(list) )); }
private IQueryable <AuditLogListDto> CreateFilteredQuery(GetAuditLogsInput input) { var query = CreateFilteredQuery().Where(x => x.ExecutionTime >= input.StartDate && x.ExecutionTime <= input.EndDate); if (input.ExecutionDurationFrom.HasValue && input.ExecutionDurationTo.HasValue) { query = query.Where(x => x.ExecutionDuration >= input.ExecutionDurationFrom && x.ExecutionDuration <= input.ExecutionDurationTo); } if (input.ExecutionDurationFrom.HasValue && !input.ExecutionDurationTo.HasValue) { query = query.Where(x => x.ExecutionDuration >= input.ExecutionDurationFrom); } if (!input.ExecutionDurationFrom.HasValue && input.ExecutionDurationTo.HasValue) { query = query.Where(x => x.ExecutionDuration <= input.ExecutionDurationTo); } if (!input.UserName.IsNullOrEmpty()) { query = query.Where(x => x.UserName.ToLower().Contains(input.UserName.Trim().ToLower())); } if (!input.ServiceName.IsNullOrEmpty()) { query = query.Where(x => x.ServiceName.ToLower().Contains(input.ServiceName.Trim().ToLower())); } if (!input.MethodName.IsNullOrEmpty()) { query = query.Where(x => x.MethodName.ToLower().Contains(input.MethodName.Trim().ToLower())); } if (!input.BrowserInfo.IsNullOrEmpty()) { query = query.Where(x => x.BrowserInfo.ToLower().Contains(input.BrowserInfo.Trim().ToLower())); } if (input.HasError.HasValue) { query = query.Where(x => input.HasError.Value ? x.Exception != null : x.Exception == null); } return(query); }
/// <summary> /// 根据入参获取审计日志信息 /// 2021-04-30 create by sean /// </summary> /// <param name="input"></param> /// <returns></returns> public async Task <PagedResultDto <AuditLogDto> > GetListAsync(GetAuditLogsInput input) { var count = await _auditLogRepository.GetCountAsync(null, null, 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, null, null, input.HttpMethod, input.Url, input.UserName, input.ApplicationName, input.CorrelationId, input.MaxExecutionDuration, input.MinExecutionDuration, input.HasException, input.HttpStatusCode, true); return(new PagedResultDto <AuditLogDto>( count, ObjectMapper.Map <List <AuditLog>, List <AuditLogDto> >(list) )); }
/// <summary> /// /// </summary> private IQueryable <AuditLogAndUser> CreateAuditLogAndUsersQuery(GetAuditLogsInput input) { var query = from auditLog in _auditLogRepository.GetAll() join user in _userRepository.GetAll() on auditLog.UserId equals user.Id into userJoin from joinedUser in userJoin.DefaultIfEmpty() where auditLog.ExecutionTime >= input.StartDate && auditLog.ExecutionTime <= input.EndDate select new AuditLogAndUser { AuditLog = auditLog, User = joinedUser }; query = query .WhereIf(!input.UserName.IsNullOrWhiteSpace(), item => item.User.UserName.Contains(input.UserName)) .WhereIf(!input.ServiceName.IsNullOrWhiteSpace(), item => item.AuditLog.ServiceName.Contains(input.ServiceName)); return(query); }
public async Task <PagedResultDto <AuditLogListDto> > GetPagedAuditLogs(GetAuditLogsInput input) { var query = CreateAuditLogAndUsersQuery(input); var resultCount = await query.CountAsync(); var results = await query .AsNoTracking() .OrderBy(input.Sorting)// TODO: OrderBy(input.Sorting) .PageBy(input) .ToListAsync(); var auditLogListDtos = ConvertToAuditLogListDtos(results); // _userRepository.GetAll().OrderByDescending() return(new PagedResultDto <AuditLogListDto>(resultCount, auditLogListDtos)); }
/// <summary> /// 创建审计日志用户的查询服务 /// </summary> /// <param name="input"></param> /// <returns></returns> private IQueryable <AuditLogAndUser> CreateAuditLogAndUsersQuery(GetAuditLogsInput input) { IQueryable <AuditLogAndUser> query; if (input.StartDate.HasValue && input.EndDate.HasValue) { query = from auditLog in _auditLogRepository.GetAll() join user in _userRepository.GetAll() on auditLog.UserId equals user.Id into userJoin from joinedUser in userJoin.DefaultIfEmpty() where auditLog.ExecutionTime >= input.StartDate && auditLog.ExecutionTime <= input.EndDate select new AuditLogAndUser { AuditLogInfo = auditLog, UserInfo = joinedUser } } ; else { query = from auditLog in _auditLogRepository.GetAll() join user in _userRepository.GetAll() on auditLog.UserId equals user.Id into userJoin from joinedUser in userJoin.DefaultIfEmpty() select new AuditLogAndUser { AuditLogInfo = auditLog, UserInfo = joinedUser } }; query = query .WhereIf(!input.UserName.IsNullOrWhiteSpace(), item => item.UserInfo.UserName.Contains(input.UserName)) .WhereIf(!input.ServiceName.IsNullOrWhiteSpace(), item => item.AuditLogInfo.ServiceName.Contains(input.ServiceName)) .WhereIf(!input.MethodName.IsNullOrWhiteSpace(), item => item.AuditLogInfo.MethodName.Contains(input.MethodName)) .WhereIf(!input.BrowserInfo.IsNullOrWhiteSpace(), item => item.AuditLogInfo.BrowserInfo.Contains(input.BrowserInfo)) .WhereIf(input.MinExecutionDuration.HasValue && input.MinExecutionDuration > 0, item => item.AuditLogInfo.ExecutionDuration >= input.MinExecutionDuration.Value) .WhereIf(input.MaxExecutionDuration.HasValue && input.MaxExecutionDuration < int.MaxValue, item => item.AuditLogInfo.ExecutionDuration <= input.MaxExecutionDuration.Value) .WhereIf(input.HasException == true, item => item.AuditLogInfo.Exception != null && item.AuditLogInfo.Exception != "") .WhereIf(input.HasException == false, item => item.AuditLogInfo.Exception == null || item.AuditLogInfo.Exception == ""); return(query); }
/// <summary> /// 创建审计日志用户的查询服务 /// </summary> /// <param name="input"></param> /// <returns></returns> private IQueryable <AuditLogAndUser> CreateAuditLogAndUsersQuery(GetAuditLogsInput input) { var auditLogQuery = _auditLogRepository.GetAll().AsNoTracking().IgnoreQueryFilters(); var userQuery = _userRepository.GetAll().AsNoTracking().IgnoreQueryFilters(); var query = from auditLog in auditLogQuery join user in userQuery on auditLog.UserId equals user.Id into userJoin from joinedUser in userJoin.DefaultIfEmpty() select new AuditLogAndUser { AuditLogInfo = auditLog, UserInfo = joinedUser }; query = query .Where(o => !o.UserInfo.IsDeleted && o.UserInfo.TenantId == AbpSession.TenantId && o.AuditLogInfo.TenantId == AbpSession.TenantId) .WhereIf(input.StartDate.HasValue && input.EndDate.HasValue, o => o.AuditLogInfo.ExecutionTime >= input.StartDate && o.AuditLogInfo.ExecutionTime <= input.EndDate) .WhereIf(!input.UserName.IsNullOrWhiteSpace(), item => item.UserInfo.UserName.Contains(input.UserName)) .WhereIf(!input.ServiceName.IsNullOrWhiteSpace(), item => item.AuditLogInfo.ServiceName.Contains(input.ServiceName)) .WhereIf(!input.MethodName.IsNullOrWhiteSpace(), item => item.AuditLogInfo.MethodName.Contains(input.MethodName)) .WhereIf(!input.BrowserInfo.IsNullOrWhiteSpace(), item => item.AuditLogInfo.BrowserInfo.Contains(input.BrowserInfo)) .WhereIf(input.MinExecutionDuration.HasValue && input.MinExecutionDuration > 0, item => item.AuditLogInfo.ExecutionDuration >= input.MinExecutionDuration.Value) .WhereIf(input.MaxExecutionDuration.HasValue && input.MaxExecutionDuration < int.MaxValue, item => item.AuditLogInfo.ExecutionDuration <= input.MaxExecutionDuration.Value) .WhereIf(input.HasException == true, item => item.AuditLogInfo.Exception != null && item.AuditLogInfo.Exception != "") .WhereIf(input.HasException == false, item => item.AuditLogInfo.Exception == null || item.AuditLogInfo.Exception == ""); return(query); }
public async Task <PagedResultDto <AuditLogListDto> > GetPaged(GetAuditLogsInput input) { var query = CreateAuditLogAndUsersQuery(input); //var query = _entityRepository.GetAll(); // TODO:根据传入的参数添加过滤条件 var count = await query.CountAsync(); var results = await query .OrderBy(input.Sorting) .PageBy(input) .ToListAsync(); var auditLogListDtos = ConvertToAuditLogListDtos(results); // var entityListDtos = ObjectMapper.Map<List<AuditLogListDto>>(entityList); //var entityListDtos =entityList.MapTo<List<AuditLogListDto>>(); //return new PagedResultDto<AuditLogListDto>(resultCount, auditLogListDtos); return(new PagedResultDto <AuditLogListDto>(count, auditLogListDtos)); }
public PagedResultDto <AuditLogDto> GetAuditLogs(GetAuditLogsInput input) { DapperExtensions.Sql.SqlServerDialect sqldic = new DapperExtensions.Sql.SqlServerDialect(); //IList<IPredicate> predList = new List<IPredicate>(); //predList.Add(Predicates.Field<AuditLogDto>(p => p.Name, Operator.Like, "不知道%")); //predList.Add(Predicates.Field<AuditLogDto>(p => p.ID, Operator.Eq, 1)); //IPredicateGroup predGroup = Predicates.Group(GroupOperator.And, predList.ToArray()); //var audi = GetAllPaged(m => m.BrowserInfo != "", input.PageIndex, input.MaxResultCount, true, m => m.ExecutionTime).ToList(); string executeQuery = @"WITH pagintable AS( SELECT ROW_NUMBER() OVER(ORDER BY [AbpAuditLogs].ID DESC )AS RowID, [AbpAuditLogs].*,[dbo].[AbpTenants].TenancyName, [dbo].[AbpUsers].UserName from [dbo].[AbpAuditLogs] left join[dbo].[AbpTenants] on[dbo].[AbpAuditLogs].TenantId=[dbo].[AbpTenants].Id left join[dbo].[AbpUsers] on[AbpAuditLogs].UserId=[dbo].[AbpUsers].Id WHERE 1= 1) SELECT * FROM pagintable where RowID between ((@CurrentPageIndex - 1) * @PageSize) + 1 and (@CurrentPageIndex * @PageSize)"; string executeCount = "SELECT COUNT(*) FROM AbpAuditLogs WHERE 1= 1"; var mixCondition = new { CurrentPageIndex = input.PageIndex, PageSize = input.MaxResultCount }; var logs = Query <AuditLogDto>(executeQuery, mixCondition).ToList(); var count = Connection.ExecuteScalar <int>(executeCount, transaction: ActiveTransaction); return(new PagedResultDto <AuditLogDto>(count, logs)); }
private IQueryable <AuditLogAndUser> CreateAuditLogAndUsersQuery(GetAuditLogsInput input) { var auditLogs = from auditLog in this._auditLogRepository.GetAll() join user in this._userRepository.GetAll() on auditLog.UserId equals(long?) user.Id into userJoin from joinedUser in userJoin.DefaultIfEmpty <User>() where auditLog.ExecutionTime >= input.StartDate && auditLog.ExecutionTime < input.EndDate select new AuditLogAndUser { AuditLog = auditLog, User = joinedUser }; return(auditLogs .WhereIf(!input.UserName.IsNullOrWhiteSpace(), i => i.User.UserName.Contains(input.UserName)) .WhereIf(!input.ServiceName.IsNullOrWhiteSpace(), i => i.AuditLog.ServiceName.Contains(input.ServiceName)) .WhereIf(!input.MethodName.IsNullOrWhiteSpace(), i => i.AuditLog.MethodName.Contains(input.MethodName)) .WhereIf(!input.BrowserInfo.IsNullOrWhiteSpace(), i => i.AuditLog.BrowserInfo.Contains(input.BrowserInfo)) .WhereIf(input.MinExecutionDuration.HasValue && input.MinExecutionDuration > 0, i => i.AuditLog.ExecutionDuration >= input.MinExecutionDuration.Value) .WhereIf(input.MaxExecutionDuration.HasValue && input.MaxExecutionDuration < 2147483647, i => i.AuditLog.ExecutionDuration <= input.MaxExecutionDuration.Value) .WhereIf(input.HasException == true, i => i.AuditLog.Exception != null && i.AuditLog.Exception != "") .WhereIf(input.HasException == false, i => i.AuditLog.Exception == null || i.AuditLog.Exception == "")); }
public Task <PagedResultDto <AuditLogDto> > GetAll(GetAuditLogsInput input) { return(_auditLoggingAppService.GetAll(input)); }
// GET: AuditLogs public ActionResult Index(GetAuditLogsInput input) { return(View()); }
public PagedResultDto <AuditLogDto> GetAuditLogsByPage(GetAuditLogsInput input) { return(_auditedRepository.GetAuditLogs(input)); }