Exemple #1
0
 // 課程名稱排序
 private int SortCourseScoreName(CourseScoreCountRecord x, CourseScoreCountRecord y)
 {
     return(x.CourseName.CompareTo(y.CourseName));
 }
Exemple #2
0
        void _bgWk_DoWork(object sender, DoWorkEventArgs e)
        {
            CourseScoreStatusFormOption Option = e.Argument as CourseScoreStatusFormOption;

            List <CourseScoreCountRecord> CourseScoreCountEntityList              = new List <CourseScoreCountRecord>();
            List <CourseScoreCountRecord> CourseScoreCountEntityListNonInput      = new List <CourseScoreCountRecord>();
            List <CourseScoreCountRecord> CourseScoreCountEntityListNonInputScore = new List <CourseScoreCountRecord>();

            // 處理取得這所選學年學期有課程id,name,修課id
            DAO.QueryData.ProcesstCourseNameStudentBySchoolYearSemester(Option.SchoolYear, Option.Semester);
            Dictionary <string, string> CourseIDNameDict = DAO.QueryData._CourseIDNameDict;
            List <JHSCAttendRecord>     SCAttendList     = JHSCAttend.SelectByIDs(DAO.QueryData._SCAttenndIDList);
            Dictionary <string, List <JHSCAttendRecord> > CourseSCAttendDict = new Dictionary <string, List <JHSCAttendRecord> >();

            foreach (JHSCAttendRecord rec in SCAttendList)
            {
                if (!CourseSCAttendDict.ContainsKey(rec.RefCourseID))
                {
                    CourseSCAttendDict.Add(rec.RefCourseID, new List <JHSCAttendRecord>());
                }

                CourseSCAttendDict[rec.RefCourseID].Add(rec);
            }

            // 取得課程授課教師
            Dictionary <string, string> CourseTeacherNameDict = DAO.QueryData.GetCourseTeacher(Option.SchoolYear, Option.Semester);

            #region 計算人數並組成回傳格式
            foreach (string CourseID in CourseIDNameDict.Keys)
            {
                CourseScoreCountRecord vCourseScoreCountRecord = new CourseScoreCountRecord();

                vCourseScoreCountRecord.CourseID   = CourseID;
                vCourseScoreCountRecord.CourseName = CourseIDNameDict[CourseID];
                if (CourseTeacherNameDict.ContainsKey(CourseID))
                {
                    vCourseScoreCountRecord.TeacherName = CourseTeacherNameDict[CourseID];
                }

                // 計算人數與有成績人數
                if (CourseSCAttendDict.ContainsKey(CourseID))
                {
                    foreach (JHSCAttendRecord rec in CourseSCAttendDict[CourseID])
                    {
                        vCourseScoreCountRecord.OraTotalEffortCount++;
                        vCourseScoreCountRecord.OraTotalScoreCount++;
                        vCourseScoreCountRecord.OraTotalTextCount++;

                        if (rec.OrdinarilyScore.HasValue)
                        {
                            vCourseScoreCountRecord.OraHasScoreCount++;
                        }
                        if (rec.OrdinarilyEffort.HasValue)
                        {
                            vCourseScoreCountRecord.OraHasEffortCount++;
                        }

                        if (Option.CheckText)
                        {
                            if (!string.IsNullOrEmpty(rec.Text))
                            {
                                vCourseScoreCountRecord.OraHasTextCount++;
                            }
                        }
                    }
                }


                if (Option.DisplayNotFinish == true && Option.CheckText == true)
                {
                    // 當勾選未輸入與需要檢查文字描述
                    if (vCourseScoreCountRecord.NonAllInputScore())
                    {
                        CourseScoreCountEntityListNonInput.Add(vCourseScoreCountRecord);
                    }
                }
                else if (Option.DisplayNotFinish == true && Option.CheckText == false)
                {
                    // 當勾選未輸入,不檢查文字描述
                    if (vCourseScoreCountRecord.NonInputScore())
                    {
                        CourseScoreCountEntityListNonInputScore.Add(vCourseScoreCountRecord);
                    }
                }
                else
                {
                    CourseScoreCountEntityList.Add(vCourseScoreCountRecord);
                }
            }

            if (CourseScoreCountEntityListNonInput.Count > 0)
            {
                e.Result = CourseScoreCountEntityListNonInput.OrderBy(x => x.CourseName).ToList();
            }

            if (CourseScoreCountEntityListNonInputScore.Count > 0)
            {
                e.Result = CourseScoreCountEntityListNonInputScore.OrderBy(x => x.CourseName).ToList();
            }

            if (CourseScoreCountEntityList.Count > 0)
            {
                e.Result = CourseScoreCountEntityList.OrderBy(x => x.CourseName).ToList();
            }


            #endregion
        }