public async Task <ApiResult <PagedResult <ClassVm> > > GetAllPaging(GetClassPagingRequest request) { //lọc dữ liệu var query = from c in _context.Classes select new { c }; //filter if (!string.IsNullOrEmpty(request.Keyword)) { query = query.Where(x => x.c.Name.Contains(request.Keyword) || x.c.Description.Contains(request.Keyword)); } //Paging int totalRow = await query.CountAsync(); var data = await query.Skip((request.PageIndex - 1) *request.PageSize) .Take(request.PageSize) .Select(x => new ClassVm() { Id_Class = x.c.Id_Class, Name = x.c.Name, Description = x.c.Description, DateCreate = x.c.DateCreate, DateUpdate = x.c.DateUpdate, }).ToListAsync(); var pagedResult = new PagedResult <ClassVm>() { TotalRecords = totalRow, PageSize = request.PageSize, PageIndex = request.PageIndex, Items = data }; return(new ApiSuccessResult <PagedResult <ClassVm> >(pagedResult)); }
public async Task<IActionResult> GetAll([FromQuery] GetClassPagingRequest request) { var classes = await _classService.GetAllPaging(request); return Ok(classes); }