Пример #1
0
        public ExamTemplate(XmlElement data)
        {
            DSXmlHelper objData = new DSXmlHelper(data);

            _identity      = objData.GetText("@ID");
            _template_name = objData.GetText("TemplateName");
            _allow_upload  = objData.GetText("AllowUpload") == "是" ? true : false;

            _teincludes = new TEIncludeCollection();
        }
Пример #2
0
        public static TEIncludeCollection GetTEIncludes()
        {
            XmlElement xmlRecords = QueryTemplate.GetIncludeExamList();

            TEIncludeCollection includes = new TEIncludeCollection();

            foreach (XmlElement each in xmlRecords.SelectNodes("IncludeExam"))
            {
                TEInclude include = new TEInclude(each);
                includes.Add(include.Identity, include);
            }

            return(includes);
        }
Пример #3
0
        public void LoadCalculationData(IProgressUI progressUI)
        {
            _progress_ui = progressUI;
            _courses     = new CourseCollection();

            List <string> courseIds = new List <string>();

            foreach (CourseRecord each in JHSchool.Course.Instance.SelectedList)
            {
                courseIds.Add(each.ID);
            }

            CurrentStep = 1;
            ReportProgress("下載課程相關資料...", 0);
            CourseCollection courses = Course.GetCourses(courseIds.ToArray());

            if (_progress_ui.Cancellation)
            {
                return;
            }

            CurrentStep++;
            ReportProgress("下載評量相關資料...", 0);
            ExamTemplateCollection templates = ExamTemplate.GetExamTemplates();

            if (_progress_ui.Cancellation)
            {
                return;
            }

            TEIncludeCollection teincludes = TEInclude.GetTEIncludes();

            if (_progress_ui.Cancellation)
            {
                return;
            }

            CurrentStep++;
            SCAttendCollection scattends = SCAttend.GetSCAttends(_progress_ui, courseIds.ToArray());

            if (_progress_ui.Cancellation)
            {
                return;
            }

            CurrentStep++;
            SCETakeCollection scetakes = SCETake.GetSCETakes(_progress_ui, courseIds.ToArray());

            if (_progress_ui.Cancellation)
            {
                return;
            }

            //建立 ExamTemplate 的 TEInclude。
            CreateTemplateExamReference(templates, teincludes);

            //建立 Course 的 ExamTemplate。
            CreateCourseTemplateReference(courses, templates);

            //建立 Course 的 SCAttend。
            CreateCourseStudentTwoWayReference(courses, scattends);

            //建立 SCAttend  的 SCETake。
            CreateSCAttendSCETakeReference(scattends, scetakes);

            _courses = courses;
        }
Пример #4
0
 private static void CreateTemplateExamReference(ExamTemplateCollection templates, TEIncludeCollection teincludes)
 {
     foreach (TEInclude each in teincludes.Values)
     {
         if (templates.ContainsKey(each.ExamTemplateId))
         {
             ExamTemplate template = templates[each.ExamTemplateId];
             template.TEIncludes.Add(each.Identity, each);
         }
         else
         {
             Console.WriteLine("TEInclude Error:" + each.Identity);
         }
     }
 }
Пример #5
0
        public void LoadCalculationData(IProgressUI progressUI, IEnumerable <StudentRecord> students, int schoolYear, int semester)
        {
            _progress_ui = progressUI;
            _courses     = new CourseCollection();

            List <string> courseIds = new List <string>();

            //foreach (CourseRecord each in JHSchool.Course.Instance.SelectedList)
            //    courseIds.Add(each.ID);
            foreach (StudentRecord each in students)
            {
                foreach (CourseRecord attend_course in GetAttendCourses(each))
                {
                    if (attend_course.SchoolYear != schoolYear)
                    {
                        continue;
                    }
                    if (attend_course.Semester != semester)
                    {
                        continue;
                    }

                    if (!courseIds.Contains(attend_course.ID))
                    {
                        courseIds.Add(attend_course.ID);
                    }
                }
            }

            CurrentStep = 1;
            //ReportProgress("下載課程相關資料...", 0);
            CourseCollection courses = Course.GetCourses(courseIds.ToArray());

            if (_progress_ui.Cancellation)
            {
                return;
            }

            CurrentStep++;
            //ReportProgress("下載評量相關資料...", 0);
            ExamTemplateCollection templates = ExamTemplate.GetExamTemplates();

            if (_progress_ui.Cancellation)
            {
                return;
            }

            TEIncludeCollection teincludes = TEInclude.GetTEIncludes();

            if (_progress_ui.Cancellation)
            {
                return;
            }

            CurrentStep++;
            SCAttendCollection scattends = SCAttend.GetSCAttends(_progress_ui, courseIds.ToArray());

            if (_progress_ui.Cancellation)
            {
                return;
            }

            CurrentStep++;
            SCETakeCollection scetakes = SCETake.GetSCETakes(_progress_ui, courseIds.ToArray());

            if (_progress_ui.Cancellation)
            {
                return;
            }

            //建立 ExamTemplate 的 TEInclude。
            CreateTemplateExamReference(templates, teincludes);

            //建立 Course 的 ExamTemplate。
            CreateCourseTemplateReference(courses, templates);

            //建立 Course 的 SCAttend。
            CreateCourseStudentTwoWayReference(courses, scattends);

            //建立 SCAttend  的 SCETake。
            CreateSCAttendSCETakeReference(scattends, scetakes);

            _courses = courses;
        }