Beispiel #1
0
        public async Task <PagedResultDto <Course> > GetPaginatedResult(GetCourseInput input)
        {
            var query = _courseRepository.GetAll();

            //统计查询数据的总条数,用于分页计算总页数
            var count = query.Count();

            //根据需求进行排序,然后进行分页逻辑的计算
            query = query.OrderBy(input.Sorting).Skip((input.CurrentPage - 1) * input.MaxResultCount).Take(input.MaxResultCount);
            //将查询结果转换为List集合,加载到内存中
            var models = await query.Include(a => a.Department).AsNoTracking().ToListAsync();



            var dtos = new PagedResultDto <Course>
            {
                TotalCount     = count,
                CurrentPage    = input.CurrentPage,
                MaxResultCount = input.MaxResultCount,
                Data           = models,
                FilterText     = input.FilterText,
                Sorting        = input.Sorting
            };

            return(dtos);
        }
Beispiel #2
0
        public async Task <IActionResult> Index(GetCourseInput input)
        {
            var models = await _courseService.GetPaginatedResult(input);

            return(View(models));
        }