修改演示数据插入脚本
This commit is contained in:
1 parent
51b83e9d78
commit
be49a2586f
2 files changed
+17
-7
No files matched your search
@@ -457,16 +457,18 @@ public sealed class DemoDataSeeder(
|
|||||||
.Select(x => (x.TeacherId, x.CourseId))
|
.Select(x => (x.TeacherId, x.CourseId))
|
||||||
.ToHashSet();
|
.ToHashSet();
|
||||||
var additions = new List<TeacherCourseApplication>();
|
var additions = new List<TeacherCourseApplication>();
|
||||||
for (var teacherIndex = 0; teacherIndex < teachers.Count; teacherIndex++)
|
foreach (var teacher in teachers)
|
||||||
{
|
{
|
||||||
var teacher = teachers[teacherIndex];
|
|
||||||
var professionalCourses = courses
|
var professionalCourses = courses
|
||||||
.Where(x => x.CollegeId == teacher.CollegeId &&
|
.Where(x => x.CollegeId == teacher.CollegeId &&
|
||||||
x.Nature is CourseNature.MajorRequired or
|
x.Nature is (CourseNature.MajorRequired or
|
||||||
CourseNature.MajorElective or CourseNature.Practice)
|
CourseNature.MajorElective or CourseNature.Practice))
|
||||||
.Take(4);
|
.Take(4);
|
||||||
var selectedPublicCourses = Enumerable.Range(0, 2)
|
var collegePublicCourses = publicCourses
|
||||||
.Select(offset => publicCourses[(teacherIndex + offset) % publicCourses.Count]);
|
.Where(x => x.CollegeId == teacher.CollegeId)
|
||||||
|
.ToList();
|
||||||
|
var selectedPublicCourses = collegePublicCourses
|
||||||
|
.Take(2);
|
||||||
foreach (var course in professionalCourses
|
foreach (var course in professionalCourses
|
||||||
.Concat(selectedPublicCourses)
|
.Concat(selectedPublicCourses)
|
||||||
.DistinctBy(x => x.Id))
|
.DistinctBy(x => x.Id))
|
||||||
|
|||||||
@@ -31,7 +31,15 @@ public sealed class DemoDataSeederTests
|
|||||||
Assert.Equal(128, await db.Teachers.CountAsync());
|
Assert.Equal(128, await db.Teachers.CountAsync());
|
||||||
Assert.Equal(3640, await db.Students.CountAsync());
|
Assert.Equal(3640, await db.Students.CountAsync());
|
||||||
Assert.Equal(148, await db.Courses.CountAsync());
|
Assert.Equal(148, await db.Courses.CountAsync());
|
||||||
Assert.Equal(736, await db.TeacherCourseApplications.CountAsync());
|
Assert.Equal(624, await db.TeacherCourseApplications.CountAsync());
|
||||||
|
var crossCollegeApplications = await (
|
||||||
|
from application in db.TeacherCourseApplications
|
||||||
|
join teacher in db.Teachers on application.TeacherId equals teacher.Id
|
||||||
|
join course in db.Courses on application.CourseId equals course.Id
|
||||||
|
where teacher.CollegeId != course.CollegeId
|
||||||
|
select application.Id)
|
||||||
|
.CountAsync();
|
||||||
|
Assert.Equal(0, crossCollegeApplications);
|
||||||
Assert.Equal(1, await db.AcademicTerms.CountAsync(x => x.IsCurrent));
|
Assert.Equal(1, await db.AcademicTerms.CountAsync(x => x.IsCurrent));
|
||||||
Assert.Equal(30, await db.Classrooms.CountAsync());
|
Assert.Equal(30, await db.Classrooms.CountAsync());
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user