public async Task <ActionResult <IEnumerable <FullStudentResource> > > GetStudents( [FromQuery] StudentFilterParameters filterParameters) { var studentDtoes = await _studentService.GetStudentsWithGroupNamesAsync(filterParameters); var studentResources = studentDtoes .Select(dto => _mapper.Map <FullStudentResource>(dto)) .ToList(); return(Ok(studentResources)); }
public async Task <IEnumerable <Student> > GetStudentsAsync(StudentFilterParameters filterParameters) { StudentFilter studentFilter = new(SchoolDbContext.Students, filterParameters); return(await studentFilter .ApplyFilter() .Include(s => s.Groups) .FilterByGroupName(filterParameters.GroupName) .WithPagination(filterParameters) .ToListAsync()); }
public static IQueryable <Student> WithPagination( this IQueryable <Student> students, StudentFilterParameters filterParameters ) { return(students .OrderBy(s => s.Id) .Skip(filterParameters.SkipCount) .Take(filterParameters.PageSize == 0 ? int.MaxValue : filterParameters.PageSize)); }
public StudentFilter(IQueryable <Student> students, StudentFilterParameters filterParameters) { Query = students; _filterParameters = filterParameters; }
public async Task <IEnumerable <FullStudentDto> > GetStudentsWithGroupNamesAsync(StudentFilterParameters filterParameters) { var students = await _students.GetStudentsAsync(filterParameters); var studentDtoes = students .Select(student => _mapper.Map <FullStudentDto>(student)); if (filterParameters.PageSize != 0) { studentDtoes = studentDtoes.Take(filterParameters.PageSize); } return(studentDtoes.ToList()); }