public async Task <PagedList <Log> > GetPagedLogs(LogPaginationParams logPaginationParams) { var logs = await GetAll <Log>(); logs = logs.Where(l => l.DateCreated >= logPaginationParams.DateFrom && l.DateCreated <= logPaginationParams.DateTo) .OrderByDescending(l => l.Id); if (logPaginationParams.Level != 0) { logs = logs.Where(l => (int)l.Level == logPaginationParams.Level); } if (logPaginationParams.StatusCode != 0) { logs = logs.Where(l => l.StatusCode == logPaginationParams.StatusCode); } if (!string.IsNullOrEmpty(logPaginationParams.Message)) { logs = logs.Where(l => l.Message.ToLower().Contains(logPaginationParams.Message.ToLower())); } if (!string.IsNullOrEmpty(logPaginationParams.UserName)) { logs = logs.Where(l => l.User != null && l.User.UserName.ToLower().Contains(logPaginationParams.UserName.ToLower())); } return(PagedList <Log> .Create(logs.AsQueryable(), logPaginationParams.PageNumber, logPaginationParams.PageSize)); }
public async Task <IActionResult> GetLogs([FromQuery] LogPaginationParams logPaginationParams) { var logs = await database.AdminRepository.GetPagedLogs(logPaginationParams); var logsToReturn = mapper.Map <ICollection <LogDetailsDto> >(logs); Response.AddPagination(logs.CurrentPage, logs.PageSize, logs.TotalCount, logs.TotalPages); return(Ok(logsToReturn)); }