public PaginatedList <TaskGetDTO> GetAll(int page, DateTime?from = null, DateTime?to = null) { IQueryable <Task> result = context .Tasks .OrderBy(e => e.Id) .Include(x => x.Comments); PaginatedList <TaskGetDTO> paginatedResult = new PaginatedList <TaskGetDTO>(); paginatedResult.CurrentPage = page; //if (from == null && to == null) // return result; if (from != null) { result = result.Where(t => t.Deadline >= from); } if (to != null) { result = result.Where(t => t.Deadline <= to); } paginatedResult.NumberOfPages = (result.Count() - 1) / PaginatedList <TaskGetDTO> .EntriesPerPage + 1; result = result .Skip((page - 1) * PaginatedList <TaskGetDTO> .EntriesPerPage) .Take(PaginatedList <TaskGetDTO> .EntriesPerPage); paginatedResult.Entries = result.Select(e => TaskGetDTO.FromTask(e)).ToList(); return(paginatedResult); }