public void TestSubGroup() { List <Lesson> lessons = new List <Lesson>(); List <Teacher> teachers = new List <Teacher>(); List <Group> groups = new List <Group>(); List <Subject> subjects = new List <Subject>(); List <Room> rooms = new List <Room>(); List <SubjectType> subjectTypes = new List <SubjectType>(); List <RoomType> roomTypes = new List <RoomType>(); STGCfg config = new STGCfg(1, 1, 2, 1, 5, 10); teachers.Add(new Teacher(0)); teachers.Add(new Teacher(1)); List <Group> subGroups = new List <Group>(); subGroups.Add(new Group(0, 10, 1, 1)); subGroups.Add(new Group(1, 15, 1, 2)); groups.Add(new Group(2, 25, subGroups)); roomTypes.Add(new RoomType(1)); rooms.Add(new Room(0, 40, roomTypes[0])); rooms.Add(new Room(1, 40, roomTypes[0])); subjectTypes.Add(new SubjectType(0, 2)); subjects.Add(new Subject(0, subjectTypes[0])); foreach (Group g in groups) { lessons.Add(new Lesson(teachers[0], g.getSubGroup()[0], subjects[0], roomTypes[0], 2)); lessons.Add(new Lesson(teachers[0], g.getSubGroup()[0], subjects[0], roomTypes[0], 2)); lessons.Add(new Lesson(teachers[1], g.getSubGroup()[1], subjects[0], roomTypes[0], 2)); lessons.Add(new Lesson(teachers[1], g.getSubGroup()[1], subjects[0], roomTypes[0], 2)); } SchoolTimetable stt = new SchoolTimetable(teachers, groups, rooms, lessons, 3, 3, config); stt.generateSchoolTimetable(); stt.print(); Console.WriteLine("################"); SchoolTimetable stt2 = new SchoolTimetable(stt); stt2.print(); foreach (Lesson l in stt.getLessons()) { Console.WriteLine(l.ToString()); } Console.WriteLine(stt.isCorrect() + " " + stt.fitness()); stt.genWeb("subGroupTest"); }
private void setSchoolTimetableToDAtaBaseTimetable(Schools school, SchoolTimetable stt) { foreach (Lesson l in stt.getLessons()) { //-------------------------------- Groups gr = db.Groups.Find(l.getGroup().getName()); //-------------------------------- //-------------------------------- Teachers te = db.Teachers.Find(l.getTeacher().getName()); //-------------------------------- //-------------------------------- Rooms ro = db.Rooms.Find(l.getRoom().getName()); //-------------------------------- //-------------------------------- Lessons le = null; List <Lessons> lessons = (from b in db.Lessons where b.SchoolsId.Equals(school.Id) select b).ToList(); foreach (Lessons ls in lessons) { if (ls.Groups.Equals(gr) && ls.Teachers.Equals(te) && ls.Subjects.Id.Equals(l.getSubject().getName()) ) { le = ls; break; } } //-------------------------------- for (int i = 0; i < l.getSize(); i++) { Timetables timetable = new Timetables(); timetable.Hour = l.getSlots()[i].hour; timetable.Day = l.getSlots()[i].day; timetable.LessonsId = le.Id; timetable.Part = i + 1; timetable.SchoolsId = school.Id; timetable.RoomsId = ro.Id; timetable.Size = l.getSize(); db.Timetables.Add(timetable); db.SaveChanges(); } } }