public PagedResponse <TaskLogDTO> Execute(SearchTaskLogDTO dto) { var logsQuery = Context.TaskLogs.AsQueryable(); if (dto.DateFrom != null) { logsQuery = logsQuery.Where(l => l.Date >= dto.DateFrom); } if (dto.DateTo != null) { logsQuery = logsQuery.Where(l => l.Date <= dto.DateTo); } if (dto.DateFrom != null && dto.DateTo != null) { logsQuery = logsQuery.Where(l => l.Date >= dto.DateFrom) .Where(l => l.Date <= dto.DateTo); } var skipCount = dto.PerPage * (dto.Page - 1); var logs = Mapper.Map <List <TaskLogDTO> >(logsQuery.Skip(skipCount).Take(dto.PerPage).ToList()); var response = new PagedResponse <TaskLogDTO> { CurrentPage = dto.Page, ItemsPerPage = dto.PerPage, TotalCount = logsQuery.Count(), Items = logs }; return(response); }
public IActionResult Get([FromQuery] SearchTaskLogDTO dto, [FromServices] IGetTaskLogQuery query) { return(Ok(_executor.ExecuteQuery(query, dto))); }