Example #1
0
        public async Task <IActionResult> PagingStudentCourse([FromQuery] GetStudentCource request)
        {
            var data = await _studentService.GetPagingStudentCourse(request);

            if (data.IsSuccessed == false)
            {
                return(BadRequest(data));
            }
            return(Ok(data));
        }
        public async Task <ApiResult <PagedResult <StudentCourseVm> > > GetPagingStudentCourse(GetStudentCource request)
        {
            var queryStudentCourse = from Rc in _context.RegisterCourses
                                     join c in _context.Courses on Rc.Id_Course equals c.Id_Course
                                     join st in _context.Students on Rc.Id_Student equals st.Id
                                     where Rc.Status == false
                                     select new { c, Rc, st };

            if (!string.IsNullOrEmpty(request.Keyword))
            {
                queryStudentCourse = queryStudentCourse.Where(x => x.st.FullName.Contains(request.Keyword));
            }

            int totalRow = await queryStudentCourse.CountAsync();

            var data = await queryStudentCourse.Skip((request.PageIndex - 1) *request.PageSize)
                       .Take(request.PageSize)
                       .Select(x => new StudentCourseVm()
            {
                Id         = x.Rc.Id_RegisterCourse,
                Id_Cource  = x.c.Id_Course,
                NameUser   = x.st.FullName,
                NameCourse = x.c.Name,
                Status     = x.Rc.Status,
                DateBegin  = x.Rc.DateCreate,
                DateUpdate = x.Rc.DateUpdate
            }).ToListAsync();

            var pagedResult = new PagedResult <StudentCourseVm>()
            {
                TotalRecords = totalRow,
                PageSize     = request.PageSize,
                PageIndex    = request.PageIndex,
                Items        = data
            };

            return(new ApiSuccessResult <PagedResult <StudentCourseVm> >(pagedResult));
        }