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); }
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)); }
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); } }
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); }