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); }
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"); } }
public void setEnrollmentRule(EnrollmentRules enrollmentRule) { this.EnrollmentRule = enrollmentRule; }
public Group(int GroupId, EnrollmentRules EnrollmentRule) { this.GroupID = GroupId; this.EnrollmentRule = EnrollmentRule; }
public Classroom(int classroomID, EnrollmentRules enrollmentRule) { this.classroomID = classroomID; this.enrollmentRule = enrollmentRule; }
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"); }