public async Task <ApiResult <PagedResult <SubjectVm> > > GetAllPaging(GetSubjectPagingRequest request) { var query = from s in _context.Subjects select new { s }; //filter if (!string.IsNullOrEmpty(request.Keyword)) { query = query.Where(x => x.s.Name.Contains(request.Keyword) || x.s.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 SubjectVm() { Id_Subject = x.s.Id_Subject, Name = x.s.Name, Description = x.s.Description, NumberOfCredits = x.s.NumberOfCredits, Lesson = x.s.Lesson, DateCreate = x.s.DateCreate, DateUpdate = x.s.DateUpdate, }).ToListAsync(); var pagedResult = new PagedResult <SubjectVm>() { TotalRecords = totalRow, PageSize = request.PageSize, PageIndex = request.PageIndex, Items = data }; return(new ApiSuccessResult <PagedResult <SubjectVm> >(pagedResult)); }
public async Task <IActionResult> GetAll([FromQuery] GetSubjectPagingRequest request) { var subject = await _subjectService.GetAllPaging(request); return(Ok(subject)); }