Exemplo n.º 1
0
        bool enrollStudent(StudentFactory stuFactObj, String studentData)
        {
            bool addStudentStatus = true;

            Console.WriteLine("Received student data for processing");
            Console.WriteLine("studentData " + studentData);
            DateTime currentDate = DateTime.Now;
            int      age         = getStuAge(studentData, currentDate);

            Console.WriteLine("age:" + age + " months");
            studentData = studentData + "," + (new DateTime()) + "," + age;
            Console.WriteLine("final studentData before parsing   " + studentData);
            Student         student    = stuFactObj.getStudentObj(studentData);;
            int             studentAge = student.Age;
            EnrollmentRules rule       = this.getApplicableEnrollmentRule(studentAge);

            Console.WriteLine("Applicable rule is " + rule.AgeRange);
            this.setClassIDGroupID(student, rule);
            Console.WriteLine("Student Enrollemnt Complete");
            student.showStudentDetails();
            Console.WriteLine("Student Enrollemnt Complete\n");
            String data = student.StudentId + "," + student.FirstName + "," + student.LastName + "," + student.Age + "," +
                          student.Address + "," + student.FatherName + "," + student.MotherName + "," + student.PhoneNumber + "," +
                          (student.DateOfJoining) + "," + (student.DateOfBirth);

            Console.WriteLine("data to be written is " + data);
            System.IO.File.AppendAllText("student.csv", data);
            studentMap.Add(student.StudentId, student);
            return(addStudentStatus);
        }
Exemplo n.º 2
0
 public void enrollStudent(List <Student> studentList)
 {
     foreach (Student student in studentList)
     {
         int             studentAge = student.Age;
         EnrollmentRules rule       = this.getApplicableEnrollmentRule(studentAge);
         Console.WriteLine("Applicable rule is " + rule.AgeRange);
         this.setClassIDGroupID(student, rule);
         Console.WriteLine("Student Enrollemnt Complete");
         student.showStudentDetails();
         studentMap.Add(student.StudentId, student);
         Console.WriteLine("Student Enrollemnt Complete\n");
     }
 }
Exemplo n.º 3
0
 public void setEnrollmentRule(EnrollmentRules enrollmentRule)
 {
     this.EnrollmentRule = enrollmentRule;
 }
Exemplo n.º 4
0
 public Group(int GroupId, EnrollmentRules EnrollmentRule)
 {
     this.GroupID        = GroupId;
     this.EnrollmentRule = EnrollmentRule;
 }
Exemplo n.º 5
0
 public Classroom(int classroomID, EnrollmentRules enrollmentRule)
 {
     this.classroomID    = classroomID;
     this.enrollmentRule = enrollmentRule;
 }
Exemplo n.º 6
0
        public Classroom setClassIDGroupID(Student student, EnrollmentRules rule)
        {
            bool      classroomFound  = false;
            bool      groupFound      = false;
            bool      teacherFound    = false;
            Classroom vacantClassroom = null;

            if (this.ClassroomList.Count == 0)
            {
                Classroom classObj = new Classroom(this.ClassroomList.Count, rule);
                classroomFound = true;
                this.addClassroom(classObj);
                Console.WriteLine("No classrooms available, new class created");
                Group groupObj = new Group(classObj.getNumOfGroups(), classObj.enrollmentRule);
                groupObj.ClassID = classObj.classroomID;
                Console.WriteLine("No groups available, new group created");
                classObj.addGroupObj(groupObj);
                //add teacher
                foreach (Teacher teacher in TeacherList)
                {
                    if (teacher.IsAvailable)
                    {
                        teacher.IsAvailable = false;
                        teacher.ClassID     = classObj.classroomID;
                        teacher.GroupID     = groupObj.GroupID;
                        groupObj.teacher    = teacher;
                        teacherFound        = true;
                        break;
                    }
                }

                if (groupObj.getGroupSize() + 1 <= groupObj.EnrollmentRule.GroupSize)
                {
                    groupFound = true;
                    groupObj.AddStudent(student);
                    student.GroupID = groupObj.GroupID;
                    Console.WriteLine("groupID set");
                    student.ClassID = classObj.classroomID;
                    Console.WriteLine("classID set");
                    return(classObj);
                }
            }
            else
            {
                foreach (Classroom classroom in this.ClassroomList)
                {
                    if (classroom.enrollmentRule.Equals(rule))
                    {
                        Console.WriteLine("classroom.getNumOfGroups()  " + classroom.getNumOfGroups() + "  classroom.getEnrollmentRule().getMaxGroup()  " + classroom.enrollmentRule.MaxGroup);
                        if (classroom.getNumOfGroups() <= classroom.enrollmentRule.MaxGroup)
                        {
                            if (classroom.getNumOfGroups() == classroom.enrollmentRule.MaxGroup)
                            {
                                Console.WriteLine("Classroom is full");
                                foreach (Group group in classroom.groupList)
                                {
                                    Console.WriteLine("group.getGroupSize()+1" + (group.getGroupSize() + 1) + " group.getEnrollmentRule().getGroupSize() " + group.EnrollmentRule.GroupSize);
                                    if (group.getGroupSize() + 1 <= group.EnrollmentRule.GroupSize)
                                    {
                                        Console.WriteLine("Group with vacancy found");
                                        groupFound     = true;
                                        classroomFound = true;
                                        group.AddStudent(student);
                                        student.GroupID = group.GroupID;
                                        Console.WriteLine("groupID set");
                                        student.ClassID = classroom.classroomID;
                                        Console.WriteLine("classID set");
                                        return(classroom);
                                    }
                                }
                            }
                            else
                            {
                                classroomFound  = true;
                                vacantClassroom = classroom;
                                foreach (Group group1 in classroom.groupList)
                                {
                                    Console.WriteLine("group.getGroupSize()+1" + (group1.getGroupSize() + 1) + " group.getEnrollmentRule().getGroupSize() " + group1.EnrollmentRule.GroupSize);
                                    if (group1.getGroupSize() + 1 <= group1.EnrollmentRule.MaxGroup)
                                    {
                                        Console.WriteLine("Group with vacancy found");
                                        groupFound = true;
                                        group1.AddStudent(student);
                                        student.GroupID = group1.GroupID;
                                        Console.WriteLine("groupID set");
                                        student.ClassID = classroom.classroomID;
                                        Console.WriteLine("classID set");
                                        return(classroom);
                                    }
                                    else
                                    {
                                        Console.WriteLine("Group is full");
                                    }
                                }
                            }
                        }
                        else
                        {
                            Console.WriteLine("Classroom is full");
                        }
                    }
                    else
                    {
                        Console.WriteLine("Class rule mismatch");
                    }
                    if (classroomFound == true && vacantClassroom != null)
                    {
                        Console.WriteLine("Vacant classroom available, group is full, creating new group");
                        Console.WriteLine("inputs for creating new group are " + vacantClassroom.getNumOfGroups() + "  " + vacantClassroom.enrollmentRule);
                        Group newGroup = new Group(vacantClassroom.getNumOfGroups(), vacantClassroom.enrollmentRule);
                        newGroup.ClassID = vacantClassroom.classroomID;
                        vacantClassroom.addGroupObj(newGroup);
                        //add teacher
                        foreach (Teacher teacher in TeacherList)
                        {
                            if (teacher.IsAvailable)
                            {
                                teacher.IsAvailable = false;
                                teacher.ClassID     = newGroup.ClassID;
                                teacher.GroupID     = newGroup.GroupID;
                                newGroup.teacher    = teacher;
                                teacherFound        = true;
                                break;
                            }
                        }
                        Console.WriteLine("check ***  " + newGroup.GroupID + "  " + (newGroup.getGroupSize() + 1) + "   " + newGroup.EnrollmentRule.GroupSize);
                        if (newGroup.getGroupSize() + 1 <= newGroup.EnrollmentRule.GroupSize)
                        {
                            groupFound = true;
                            newGroup.AddStudent(student);
                            student.GroupID = newGroup.GroupID;
                            Console.WriteLine("groupID set");
                            student.ClassID = vacantClassroom.classroomID;
                            Console.WriteLine("classID set");
                            return(vacantClassroom);
                        }
                    }
                }
            }
            Console.WriteLine("classroomFound is " + classroomFound + "  groupFound  " + groupFound);
            if (classroomFound == false && groupFound == false)
            {
                Console.WriteLine("Class and group not found");
                Console.WriteLine("Creating new class and group");
                Classroom classObj = new Classroom(this.ClassroomList.Count, rule);
                classroomFound = true;
                this.addClassroom(classObj);
                Group groupObj = new Group(classObj.getNumOfGroups(), classObj.enrollmentRule);
                groupObj.ClassID = classObj.classroomID;
                classObj.addGroupObj(groupObj);
                //add teacher
                foreach (Teacher teacher in TeacherList)
                {
                    if (teacher.IsAvailable)
                    {
                        teacher.IsAvailable = false;
                        teacher.ClassID     = groupObj.ClassID;
                        teacher.GroupID     = groupObj.GroupID;
                        groupObj.teacher    = teacher;
                        teacherFound        = true;
                        break;
                    }
                }
                if (groupObj.getGroupSize() + 1 <= groupObj.EnrollmentRule.GroupSize)
                {
                    groupFound = true;
                    groupObj.AddStudent(student);
                    student.GroupID = groupObj.GroupID;
                    Console.WriteLine("groupID set");
                    student.ClassID = classObj.classroomID;
                    Console.WriteLine("classID set");
                    return(classObj);
                }
            }
            throw new Exception("Invalid input while assigning Class ID");
        }