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); } }
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); }