Пример #1
0
        public async Task <IPagedList <Log> > GetLogs(LogPagedDataRequest request)
        {
            var query = _repository.Entities.AsQueryable();

            if (request.FromDate.HasValue)
            {
                query = query.Where(x => x.Date >= request.FromDate.Value);
            }

            if (request.ToDate.HasValue)
            {
                query = query.Where(x => x.Date <= request.ToDate.Value);
            }

            if (!string.IsNullOrWhiteSpace(request.Username))
            {
                query = query.Where(x => x.Username.Contains(request.Username));
            }

            if (!string.IsNullOrWhiteSpace(request.Thread))
            {
                query = query.Where(x => x.Thread.Contains(request.Thread));
            }

            if (!string.IsNullOrWhiteSpace(request.Level))
            {
                query = query.Where(x => x.Level == request.Level);
            }

            if (!string.IsNullOrWhiteSpace(request.Message))
            {
                query = query.Where(x => x.Message.Contains(request.Message));
            }

            if (!string.IsNullOrWhiteSpace(request.Exception))
            {
                query = query.Where(x => x.Exception.Contains(request.Exception));
            }

            string orderBy = request.SortField.ToString();

            if (QueryHelper.PropertyExists <Log>(orderBy))
            {
                query = request.SortOrder == SortOrder.Ascending ? query.OrderByProperty(orderBy) : query.OrderByPropertyDescending(orderBy);
            }
            else
            {
                query = query.OrderByDescending(x => x.Date);
            }

            var pagedList = new PagedList <Log>();
            await pagedList.CreateAsync(query, request.PageIndex, request.PageSize);

            return(pagedList);
        }
Пример #2
0
        public async Task <IPagedList <Log> > GetLogs(LogPagedDataRequest request)
        {
            var query = _context.Logs.AsQueryable();

            if (request.FromDate.HasValue)
            {
                query = query.Where(x => x.Logged >= request.FromDate.Value);
            }

            if (request.ToDate.HasValue)
            {
                query = query.Where(x => x.Logged <= request.ToDate.Value);
            }

            if (!string.IsNullOrWhiteSpace(request.Level))
            {
                query = query.Where(x => x.Level == request.Level);
            }

            if (!string.IsNullOrWhiteSpace(request.Message))
            {
                query = query.Where(x => x.Message.Contains(request.Message));
            }

            if (!string.IsNullOrWhiteSpace(request.Logger))
            {
                query = query.Where(x => x.Logger.Contains(request.Logger));
            }

            if (!string.IsNullOrWhiteSpace(request.Callsite))
            {
                query = query.Where(x => x.Callsite.Contains(request.Callsite));
            }

            if (!string.IsNullOrWhiteSpace(request.Exception))
            {
                query = query.Where(x => x.Exception != null && x.Exception.Contains(request.Exception));
            }

            string orderBy = request.SortField.ToString();

            if (QueryHelper.PropertyExists <Log>(orderBy))
            {
                query = request.SortOrder == SortOrder.Ascending ? query.OrderByProperty(orderBy) : query.OrderByPropertyDescending(orderBy);
            }
            else
            {
                query = query.OrderByDescending(x => x.Logged);
            }

            return(await PagedList <Log> .CreateAsync(query, request.PageIndex, request.PageSize));
        }
Пример #3
0
 public async Task <IPagedList <Log> > GetLogsAsync(LogPagedDataRequest request)
 {
     _logger.LogInformation($"BEGIN GetLogs");
     try
     {
         return(await Task.Run(() => MapLogs(_logRepository.GetLogs(request))));
     }
     catch (Exception ex)
     {
         _logger.LogError($"Exception on GetLogs with message: {ex.Message}");
         return(null);
     }
 }
Пример #4
0
        private LogPagedDataRequest ParsePagedDataRequest(DataSourceRequest request, LogSearchModel model)
        {
            var dataRequest = new LogPagedDataRequest
            {
                Thread    = model.Thread,
                Username  = model.SelectedUsername,
                Level     = model.SelectedLevel,
                Message   = model.Message,
                Exception = model.Exception,
                PageIndex = request.Page - 1,
                PageSize  = request.PageSize
            };

            if (model.FromDate.HasValue)
            {
                dataRequest.FromDate = model.FromDate.Value;
            }

            if (model.ToDate.HasValue)
            {
                dataRequest.ToDate = model.ToDate.Value.ToEndOfDay();
            }

            SortDescriptor sort = request.Sorts.FirstOrDefault();

            if (sort != null)
            {
                LogSortField sortField;
                if (!Enum.TryParse(sort.Member, out sortField))
                {
                    sortField = LogSortField.Date;
                }
                dataRequest.SortField = sortField;
                dataRequest.SortOrder = sort.SortDirection == ListSortDirection.Ascending ? SortOrder.Ascending : SortOrder.Descending;
            }
            return(dataRequest);
        }