Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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;
                }
            }
        }
Ejemplo n.º 3
0
        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);
        }