This commit is contained in:
biss committed 2026-08-14 21:57:17 +08:00
1 parent ef3fbf92f0
commit 99cca9491f
2 files changed
+26 -7

No files matched your search

@@ -85,15 +85,16 @@ public sealed class CourseSelectionsController(
CancellationToken cancellationToken)
{
var source = ApplyEnrollmentFilters(ScopedEnrollments(), query);
var students = source.Select(x => new EnrollmentStudentIdentity(
x.StudentId, x.Student!.StudentNumber, x.Student.Name,
x.Student.AdministrativeClass!.Major!.Name,
x.Student.AdministrativeClass.Name, x.Student.AdministrativeClass.Grade));
var total = await students.Distinct().CountAsync(cancellationToken);
var matchingStudentIds = source.Select(x => x.StudentId).Distinct();
var total = await matchingStudentIds.CountAsync(cancellationToken);
var page = Math.Max(1, query.Page);
var pageSize = Math.Clamp(query.PageSize, 1, 100);
var pageStudents = await students.Distinct()
var pageStudents = await db.Students.AsNoTracking()
.Where(x => matchingStudentIds.Contains(x.Id))
.OrderBy(x => x.StudentNumber).Skip((page - 1) * pageSize).Take(pageSize)
.Select(x => new EnrollmentStudentIdentity(
x.Id, x.StudentNumber, x.Name, x.AdministrativeClass!.Major!.Name,
x.AdministrativeClass.Name, x.AdministrativeClass.Grade))
.ToListAsync(cancellationToken);
var studentIds = pageStudents.Select(x => x.StudentId).ToArray();
var enrollments = await ProjectEnrollments(OrderEnrollments(source.Where(x =>