//[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));
        }
예제 #2
0
        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));
        }