public MainView() { classManagementView = new ClassManagementView(classController, courseController, lecturerController, roomController); roomManagementView = new RoomManagementView(roomController); studentManagementView = new StudentManagementView(studentController, courseController, classController, lecturerController, roomController); courseManagementView = new CourseManagementView(courseController); lecturerManagementView = new LecturerManagementView(lecturerController); }
public ClassManagementView(Controller.ClassController classController, Controller.CourseController courseController, Controller.LecturerController lecturerController, Controller.RoomController roomController) { // TODO: Complete member initialization this.classController = classController; this.courseController = courseController; this.lecturerController = lecturerController; this.roomController = roomController; cmv = new CourseManagementView(courseController); lmv = new LecturerManagementView(lecturerController); rmv = new RoomManagementView(roomController); }
internal void EditClass() { if (classController.ClassesCount() == 0) { Console.WriteLine("No class found! you need to add class."); Console.WriteLine("[Enter] to continue..."); Console.ReadLine(); } else { DisplayClasses(); Console.Write("Enter only one class name as shown above: "); string editClassName = Console.ReadLine(); Class expectedClass = classController.SearchClass(editClassName); while (expectedClass == null) { Console.Write("\nNot class found! Enter class name again: "); editClassName = Console.ReadLine(); expectedClass = classController.SearchClass(editClassName); } /* Backup information of class that will be updated. * Recreate that class if something go wrong during update process */ var lecturerInfo = expectedClass.Lecturer; var courseInfo = expectedClass.Course; string className = expectedClass.ToString(); List <ClassPeriod> cpList = expectedClass.ClassPeriodList; //Console.WriteLine("*******Lecturer id list******** "); //List<Lecturer> lecturerList = lecturerController.GetLecturers(); //foreach (Lecturer l in lecturerList) //{ // Console.WriteLine(l.Id); //} LecturerManagementView lmv = new LecturerManagementView(lecturerController); Console.WriteLine("\n\t\t Lecturer list"); lmv.DisplayLecturer(); Console.Write("\nEnter one of above id to change \"{0}\"[Enter to keep]: ", lecturerInfo.Id); string nLecId = Console.ReadLine(); Lecturer lecturer = null; if (nLecId != "") { lecturer = lecturerController.SearchLecturer(nLecId); while (lecturer == null) { Console.Write("\nNot found this lecture! Enter again: "); nLecId = Console.ReadLine(); lecturer = lecturerController.SearchLecturer(nLecId); } lecturerInfo = lecturer; } //Console.WriteLine("*******Course id list******** "); //List<Course> courseList = courseController.GetCourses(); //foreach (Course c in courseList) //{ // Console.WriteLine(c.Id); //} CourseManagementView cmv = new CourseManagementView(courseController); Console.WriteLine("\n\t\t Course list"); cmv.DisplayCourses(); Console.Write("\nEnter one of above id to change \"{0}\"[Enter to keep]: ", courseInfo.Id); string nCourseId = Console.ReadLine(); Course course = null; if (nCourseId != "") { course = courseController.SearchCourse(nCourseId); while (course == null) { Console.Write("\nNot found this course! Enter again: "); nCourseId = Console.ReadLine(); course = courseController.SearchCourse(nCourseId); } courseInfo = course; } Console.WriteLine(); Console.WriteLine("********** Class Periods ***********"); int classPeriodCount = cpList.Count; for (int i = 0; i < classPeriodCount; i++) { Console.WriteLine("\nClass period number \"{0}\"", i + 1); Console.WriteLine(cpList[i].ToString()); Console.WriteLine(); } int number = 0; bool valid = false; while (!valid) { try { Console.Write("\nEnter period number to update: "); number = int.Parse(Console.ReadLine()); valid = true; } catch (Exception) { Console.Write("\nUnexisted period number!Try again: "); } } number -= 1; ClassPeriod backupCP = cpList[number]; cpList.RemoveAt(number); ClassPeriod nCp = CreateClassPeriod(); bool conflicted = true; while (conflicted) { if (cpList.Count == 0) { conflicted = false; } foreach (ClassPeriod cp in cpList) { conflicted = nCp.TimeConflict(cp); if (conflicted) { break; } } if (conflicted) { Console.WriteLine("\nNew period has clashed with other remaining period of class to update."); nCp = CreateClassPeriod(); } } while (true) { if (classController.ConflictTime(nCp)) { Console.WriteLine("\nNew period has clashed with other period of different classes."); nCp = CreateClassPeriod(); } else if (classController.ConflictLecturer(nLecId, nCp)) { Console.WriteLine("\nNew lecturer \"{0}\" teaches a class at the same time of new period."); nCp = CreateClassPeriod(); } else { break; } } cpList.Add(nCp); classController.DeleteClassName(editClassName); if (classController.UpdateClass(lecturerInfo, courseInfo, nCp)) { Console.WriteLine("\nUpdated class({0})", lecturerInfo.Id + courseInfo.Id); Console.Write("[Enter] to continue..."); Console.ReadLine(); } else { classController.CreateClass(expectedClass.Course, expectedClass.Lecturer, backupCP); Console.WriteLine("\nUpdate failed!"); Console.Write("[Enter] to continue..."); Console.ReadLine(); } } }