コード例 #1
0
        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);
        }