Ejemplo n.º 1
0
        public void ExecuteAutoCorrect(IEnumerable <string> EntityIDs)
        {
            try
            {
                if (!K12.Data.Utility.Utility.IsNullOrEmpty(EntityIDs))
                {
                    if (MsgBox.Show("自動修正將依照檢查結果建議值進行修正總共" + EntityIDs.Count() + "筆,強烈建議您務必將檢查結果匯出備份,是否進行自動修正?", "您是否要進行自動修正?", System.Windows.Forms.MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes)
                    {
                        StringBuilder strBuilder = new StringBuilder(1024 * 1024);
                        List <string> LogValues  = new List <string>();

                        strBuilder.AppendLine("學號,狀態,學年度,學期" + Environment.NewLine);

                        foreach (SHSemesterEntryScoreRecord sems in CorrectableRecs)
                        {
                            if (EntityIDs.Contains(sems.ID))
                            {
                                LogValues.Add(sems.Student.StudentNumber);
                                LogValues.Add(sems.Student.StatusStr);
                                LogValues.Add("" + sems.SchoolYear);
                                LogValues.Add("" + sems.Semester);
                                strBuilder.AppendLine(string.Join(",", LogValues.ToArray()));
                                LogValues.Clear();
                            }
                        }

                        FISCA.LogAgent.ApplicationLog.Log("資料合理性檢查.學生學期分項成績為『0.0』或空值", "刪除學生學期分項成績有『0.0』或空值", strBuilder.ToString());
                        int Count = SHSemesterEntryScore.Delete(EntityIDs);
                        MsgBox.Show("已自動修正完成!");
                    }
                }
            }
            catch (Exception e)
            {
                SmartSchool.ErrorReporting.ReportingService.ReportException(e);

                MsgBox.Show(e.Message);
            }
        }
Ejemplo n.º 2
0
        public DataRationalityMessage Execute()
        {
            QueryHelper Helper = new QueryHelper();

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

            DataTable StudentIDTable = Helper.Select("select ref_student_id from sems_entry_score where score_info like'%<SemesterEntryScore><Entry 分項=\"學業\" 成績=\"0.0\"/></SemesterEntryScore>%'  or score_info like'%<SemesterEntryScore><Entry 分項=\"學業\" 成績=\"0\"/></SemesterEntryScore>%' or score_info like'%<SemesterEntryScore><Entry 分項=\"學業\" 成績=\"0.00\"/></SemesterEntryScore>%' or score_info like'%<SemesterEntryScore><Entry 分項=\"學業\" 成績=\"00.00\"/></SemesterEntryScore>%' or score_info like'%<SemesterEntryScore><Entry 分項=\"學業\" 成績=\"00\"/></SemesterEntryScore>%'");

            for (int i = 0; i < StudentIDTable.Rows.Count; i++)
            {
                StudentIDs.Add("" + StudentIDTable.Rows[i][0]);
            }

            List <SHSemesterEntryScoreRecord> SemsScoreList = new List <SHSemesterEntryScoreRecord>();

            if (StudentIDs.Count > 0)
            {
                SemsScoreList = SHSemesterEntryScore.Select(null, StudentIDs, string.Empty, null);
            }

            CorrectableRecs.Clear();
            RATRecs.Clear();
            DataRationalityMessage retMsg = new DataRationalityMessage();

            try
            {
                foreach (SHSemesterEntryScoreRecord SmesRec in SemsScoreList)
                {
                    if (SmesRec.Group == "學習" && SmesRec.GroupMainScore == 0)
                    {
                        EmptySemesterEntryScoreRATRec rec = new EmptySemesterEntryScoreRATRec();
                        rec.學期成績系統編號 = SmesRec.ID;
                        rec.學生系統編號   = SmesRec.RefStudentID;
                        rec.身分證號     = SmesRec.Student.IDNumber;
                        rec.姓名       = SmesRec.Student.Name;
                        rec.狀態       = SmesRec.Student.StatusStr;
                        rec.座號       = K12.Data.Int.GetString(SmesRec.Student.SeatNo);
                        if (SmesRec.Student.Class != null)
                        {
                            rec.班級 = SmesRec.Student.Class.Name;
                        }
                        rec.學年度 = SmesRec.SchoolYear.ToString();
                        rec.學期  = SmesRec.Semester.ToString();
                        rec.學號  = SmesRec.Student.StudentNumber;

                        RATRecs.Add(rec);
                        CorrectableRecs.Add(SmesRec);
                    }
                }
            }
            catch (Exception ex)
            {
                retMsg.Message = ex.Message;

                return(retMsg);
            }

            StringBuilder strBuilder = new StringBuilder();

            strBuilder.AppendLine("學期分項成績零值筆數:" + RATRecs.Count);

            var SortedRATRecords = from RATRecord in RATRecs orderby RATRecord.狀態, RATRecord.班級, K12.Data.Int.ParseAllowNull(RATRecord.座號), RATRecord.學年度, RATRecord.學期 select RATRecord;

            retMsg.Message = strBuilder.ToString();
            retMsg.Data    = SortedRATRecords.ToList();

            return(retMsg);
        }