Пример #1
0
        public async Task <JsonResult> Index(Paginator paginator, StudentFilter filter)

        {
            List <StudentViewModel> studentViewList = new List <StudentViewModel>();

            try
            {
                IEnumerable <StudentDataModel> studentList = await _studentService.GetStudentList();

                IEnumerable <GroupDataModel> groupList = await _groupService.GetGroupList();

                studentViewList = studentList.Select(x => new StudentViewModel(x, groupList.Where(i => x.GroupsIdList.Contains(i.ID)))).ToList();
            }
            catch (Exception ex)
            {
                return(Json(new { error = ex.Message }));
            }

            if (paginator.PageNumber.HasValue && paginator.StudentsCountAtPage.HasValue && paginator.PageNumber > 0)
            {
                studentViewList = studentViewList.GetRange((paginator.PageNumber.Value - 1) * paginator.StudentsCountAtPage.Value, paginator.StudentsCountAtPage.Value);
            }

            if (studentViewList != null)
            {
                studentViewList = filter.FilterList(studentViewList);
            }

            JsonResult result = Json(studentViewList?.Select(s => new { id = s.Id, fullName = s.FullName, uniqId = s.UniqueName, groups = String.Join(',', s.GroupList.Select(i => i.Name)) }).ToList());

            return(result);
        }