Ejemplo n.º 1
0
        public async Task <PagedResultDto <AuditLogListDto> > GetAuditLogs(GetAuditLogsInput input)
        {
            var query = _auditlogRepository.AsQueryable();

            query = query
                    .WhereIf(input.MinExecutionDuration.HasValue && input.MinExecutionDuration > 0, item => item.ExecutionDuration >= input.MinExecutionDuration.Value)
                    .WhereIf(input.MaxExecutionDuration.HasValue && input.MaxExecutionDuration < int.MaxValue, item => item.ExecutionDuration <= input.MaxExecutionDuration.Value)
                    .WhereIf(input.HasException == true, item => item.Exceptions != null && item.Exceptions != "")
                    .WhereIf(input.HasException == false, item => item.Exceptions == null || item.Exceptions == "");

            var resultCount = await query.CountAsync();

            var results = await query
                          .OrderBy(input.Sorting ?? "executionTime desc")
                          .PageBy(input)
                          .ToListAsync();

            var auditLogListDtos = ObjectMapper.Map <List <AuditLog>, List <AuditLogListDto> >(results);

            return(new PagedResultDto <AuditLogListDto>(resultCount, auditLogListDtos));
        }