//[AllowAnonymous] public async Task <IActionResult> GetAllPaging([FromQuery] GetTeacherPagingRequest request) { var data = await _teacherService.GetAllPaging(request); if (data.IsSuccessed == false) { return(BadRequest(data)); } return(Ok(data)); }
public async Task <ApiResult <PagedResult <TeacherVm> > > GetAllPaging(GetTeacherPagingRequest request) { var queryst = from t in _context.Teachers select new { t }; var queryCourse = from c in _context.Courses select new { c }; if (!string.IsNullOrEmpty(request.Keyword)) { queryst = queryst.Where(x => x.t.FullName.Contains(request.Keyword) || x.t.Email.Contains(request.Keyword)); } int totalRow = await queryst.CountAsync(); var data = await queryst.Skip((request.PageIndex - 1) *request.PageSize) .Take(request.PageSize) .Select(x => new TeacherVm() { Id = x.t.Id, FullName = x.t.FullName, Email = x.t.Email, TeacherCourses = queryCourse.Where(y => x.t.Id == y.c.Id_Teacher).Select(y => new TeacherCourse() { Id_Course = y.c.Id_Course, NameCourse = y.c.Name, DateBegin = y.c.DateBegin, DateEnd = y.c.DateEnd, }).ToList() }).ToListAsync(); var pagedResult = new PagedResult <TeacherVm>() { TotalRecords = totalRow, PageSize = request.PageSize, PageIndex = request.PageIndex, Items = data }; return(new ApiSuccessResult <PagedResult <TeacherVm> >(pagedResult)); }