public static List <Course> Reduce(CreditDeterminer creditDeterminer, List <CourseInformation> courseInfoLst, int currentTermNumber) { int passedUnitsNumber = 0; //create a curriculum object with specific credit MainCurriculum curriculum = new MainCurriculum(MainCurriculum.CreateStudentCredit(creditDeterminer.Level1, creditDeterminer.Level2)); //update curriculm's courses properties considering student history information for (int i = 0; i < courseInfoLst.Count; i++) { var currentCourseInfo = courseInfoLst[i]; var currentCourse = curriculum.Courses[i]; if (currentCourseInfo.Id != currentCourse.Id) { throw new ArgumentException(); } currentCourse.CodeInDesUni = currentCourseInfo.CodeInDesUni; currentCourse.CorrespondingTitleInDesUni = currentCourseInfo.CorrespondingTitleInDesUni; if (currentCourseInfo.IsPassed) { currentCourse.IsPassed = true; passedUnitsNumber += currentCourse.Units; } else if (currentCourseInfo.NumberOfFailed > 1) { currentCourse.NumberOfFailed = 2; } } return(Reduce(curriculum, currentTermNumber, passedUnitsNumber)); }
public static MainCurriculum CreateNewCurriculmWithSpecificCreditAndFilledBySpecificCourseInforamtion(string creditFileName, string courseInforamtionFileName) { CreditDeterminer creditDeterminer; FileServiceProvider.DeserializeFromXmlFile(creditFileName, out creditDeterminer); List <CourseInformation> courseInfoLst = null; FileServiceProvider.DeserializeFromXmlFile(courseInforamtionFileName, out courseInfoLst); //create a curriculum object with specific credit MainCurriculum curriculum = new MainCurriculum(MainCurriculum.CreateStudentCredit(creditDeterminer.Level1, creditDeterminer.Level2)); //update curriculm's courses properties considering student history information for (int i = 0; i < courseInfoLst.Count; i++) { var currentCourseInfo = courseInfoLst[i]; var currentCourse = curriculum.Courses[i]; if (currentCourseInfo.Id != currentCourse.Id) { throw new ArgumentException(); } currentCourse.CodeInDesUni = currentCourseInfo.CodeInDesUni; currentCourse.CorrespondingTitleInDesUni = currentCourseInfo.CorrespondingTitleInDesUni; if (currentCourseInfo.IsPassed) { currentCourse.IsPassed = true; } else if (currentCourseInfo.NumberOfFailed > 1) { currentCourse.NumberOfFailed = 2; } } return(curriculum); }