Beispiel #1
0
        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));
        }
Beispiel #4
0
        public async Task <IActionResult> GetAll([FromQuery] GetStudentPagingRequest request)
        {
            var user = await _studentService.GetAllPaging(request);

            return(Ok(user));
        }