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