public async Task <PagedResult <StudentViewModel> > GetStudentsPagings(GetStudentPagingRequest request, int sort) { var student = _context.Students.Select(x => new StudentViewModel() { Id = x.Id, Name = x.Name, Yob = x.Yob, Phone = x.Phone, Address = x.Address, }); if (!string.IsNullOrEmpty(request.Keyword)) { student = student.Where(p => p.Name.Contains(request.Keyword)); } if (sort == 1) { student = student.OrderBy(x => x.Yob); } if (sort == 2) { student = student.OrderBy(x => x.Name); } int totalRow = await student.CountAsync(); var data = student.Skip((request.PageIndex - 1) * request.PageSize).Take(request.PageSize); var pageResult = new PagedResult <StudentViewModel>() { TotalRecord = totalRow, Items = await data.ToListAsync() }; return(pageResult); }
public async Task <ApiResult <PagedResult <StudentVm> > > GetAllPaging(GetStudentPagingRequest request) { var queryst = from st in _context.Students select new { st }; var queryEquipment = from e in _context.Equipment select new { e }; var queryCourse = from Rc in _context.RegisterCourses join c in _context.Courses on Rc.Id_Course equals c.Id_Course select new { c, Rc }; if (!string.IsNullOrEmpty(request.Keyword)) { queryst = queryst.Where(x => x.st.FullName.Contains(request.Keyword) || x.st.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 StudentVm() { Id = x.st.Id, FullName = x.st.FullName, Email = x.st.Email, UrlImg = x.st.UrlImg, StatusEquipment = x.st.StatusEquipment, StudentEquipment = queryEquipment.Where(y => x.st.Id == y.e.Id_Student).Select(y => new StudentEquipment() { Id_BLE = y.e.Id_BLE, Id_Equipment = y.e.Id_Equipment, Name = y.e.Name, Description = y.e.Description, Status = y.e.Status, }).ToList(), StudentRCs = queryCourse.Where(y => x.st.Id == y.Rc.Id_Student).Select(y => new StudentRC() { Id_Course = y.c.Id_Course, NameCourse = y.c.Name, DateBegin = y.c.DateBegin, DateEnd = y.c.DateEnd }).ToList() }).ToListAsync(); var pagedResult = new PagedResult <StudentVm>() { TotalRecords = totalRow, PageSize = request.PageSize, PageIndex = request.PageIndex, Items = data }; return(new ApiSuccessResult <PagedResult <StudentVm> >(pagedResult)); }
public async Task <IActionResult> Index(string keyword, int pageIndex = 1, int pageSize = 10, int sort = 0) { var request = new GetStudentPagingRequest() { Keyword = keyword, PageIndex = pageIndex, PageSize = pageSize }; var data = await _studentService.GetStudentsPagings(request, sort); ViewBag.province = await _studentService.GetAllProvince(); ViewBag.district = await _studentService.GetAllDistrict(); ViewBag.commune = await _studentService.GetAllCommune(); return(View(data)); }
public async Task <IActionResult> GetAll([FromQuery] GetStudentPagingRequest request) { var user = await _studentService.GetAllPaging(request); return(Ok(user)); }