public static ArrayList getPossibleRoomsRelCapacity(Course dragedCourse) { ArrayList possibleRooms = new ArrayList(); Teacher dragedTeacher = (Teacher)dragedCourse.getTeacher(); foreach (Room room in AppForm.CURR_OCTT_DOC.RoomsRootNode.Nodes) { if (dragedTeacher.getAllowedRoomsList() == null || dragedTeacher.getAllowedRoomsList().Contains(room)) { if (dragedCourse.getAllowedRoomsList() == null || dragedCourse.getAllowedRoomsList().Contains(room)) { bool allowed = true; int minCapacity = dragedCourse.getNumberOfEnrolledStudents(); if (dragedCourse.getCoursesToHoldTogetherList().Count > 0) { foreach (Course edu_program_group in dragedCourse.getCoursesToHoldTogetherList()) { if (!(edu_program_group.getAllowedRoomsList() == null || edu_program_group.getAllowedRoomsList().Contains(room))) { allowed = false; break; } minCapacity += edu_program_group.getNumberOfEnrolledStudents(); } } if (room.getRoomCapacity() >= minCapacity) { if (allowed) { possibleRooms.Add(room); } } } } } return(possibleRooms); }
public SetAllowedRoomsCmd(Course course, Teacher teacher, ArrayList newList) { _course = course; _teacher = teacher; _newAllowedRoomsList = newList; _oldAllowedRoomsList = new ArrayList(); if (_course != null) //course { if (_course.getAllowedRoomsList() != null) { foreach (Room roomEd in _course.getAllowedRoomsList()) { _oldAllowedRoomsList.Add(roomEd); } } else { _oldAllowedRoomsList = null; } } else //teacher { if (_teacher.getAllowedRoomsList() != null) { foreach (Room roomEd in _teacher.getAllowedRoomsList()) { _oldAllowedRoomsList.Add(roomEd); } } else { _oldAllowedRoomsList = null; } } }
private ArrayList getUnallowedTSForTeacher(Teacher teacher) { ArrayList teacherUnallowedTS = new ArrayList(); int[] roomRestrictions = null; ArrayList rr = teacher.getAllowedRoomsList(); if (rr != null && rr.Count > 0) { roomRestrictions = new int[rr.Count]; int rri = 0; foreach (Room room in rr) { int roomIndex = _sortedRoomsRelCapacityList.IndexOf(room); roomRestrictions[rri] = roomIndex; rri++; } } ArrayList tempUnallowedTSList = new ArrayList(); int wtuts = 0; for (int k = 0; k < AppForm.CURR_OCTT_DOC.getNumberOfDays(); k++) { for (int j = 0; j < AppForm.CURR_OCTT_DOC.IncludedTerms.Count; j++) { wtuts++; if (teacher.getAllowedTimeSlots()[j, k] == false) { for (int qq = 0; qq < NUM_OF_ROOMS; qq++) { tempUnallowedTSList.Add(qq * NUM_OF_SLOTS_PER_ROOM + wtuts); } } } } //Console.WriteLine(tempUnallowedTSList.Count); int[] unallowedTS = new int[tempUnallowedTSList.Count]; int tss = 0; //Console.WriteLine("New teacher"); foreach (int tsindex in tempUnallowedTSList) { unallowedTS[tss] = tsindex; tss++; } foreach (int unallTS in unallowedTS) { teacherUnallowedTS.Add(unallTS); } if (roomRestrictions != null && roomRestrictions.GetLength(0) > 0) { ArrayList rrList = new ArrayList(); foreach (int rrcc in roomRestrictions) { rrList.Add(rrcc); } for (int rsroom = 0; rsroom < NUM_OF_ROOMS; rsroom++) { if (!rrList.Contains(rsroom)) { for (int rs = 0; rs < NUM_OF_SLOTS_PER_ROOM; rs++) { int newitem = rsroom * NUM_OF_SLOTS_PER_ROOM + rs + 1; if (!teacherUnallowedTS.Contains(newitem)) { teacherUnallowedTS.Add(newitem); } } } } } // return(teacherUnallowedTS); }