public frmAssignedSurvy_SingleForm(UDT.AssignedSurvey AssignedSurvey, CourseRecord Course, TeacherRecord Teacher, string CaseName) { InitializeComponent(); this.AssignedSurvey = AssignedSurvey; this.Course = Course; this.Teacher = Teacher; this.CaseName = CaseName; Access = new AccessHelper(); this.ErrorProvider = new ErrorProvider(); this.Load += new EventHandler(frmAssignedSurvy_SingleForm_Load); }
internal CourseRecordEditor(CourseRecord record) { Remove = false; Course = record; ID = Course.ID; Name = Course.Name; SchoolYear = Course.SchoolYear; Semester = Course.Semester; Subject = Course.Subject; Domain = Course.Domain; Period = Course.Period; Credit = Course.Credit; RefClassID = Course.RefClassID; RefAssessmentSetupID = Course.RefAssessmentSetupID; CalculationFlag = Course.CalculationFlag; }
private void AddAddend(StudentRecord student) { // 檢查是否要加入 bool CheckAdd = true; foreach (ListViewItem lvi in lvStudents.Items) { AttendInfo ai = lvi as AttendInfo; // 表示學生已經加入 if (ai.RefStudentID == student.ID) { CheckAdd = false; break; } } if (CheckAdd) { AttendInfo newItem = new AttendInfo(student); CourseRecord info = Course.Instance.Items[RunningID]; //GraduationPlanSubject subject = student.GraduationPlanInfo.GetSubjectInfo( // info.Subject, // info.SubjectLevel // ); //if (subject.Required == "必修") // newItem.IsRequired = "必"; //if (subject.Required == "選修") // newItem.IsRequired = "選"; //newItem.RequiredBy = subject.RequiredBy; lvStudents.Items.Add(newItem); newItem.EnsureVisible(); OnValueChanged("IsDirty", "True"); label2.Text = lvStudents.Items.Count.ToString(); } }
/// <summary> /// 設定課程的第三位教師。 /// </summary> /// <param name="teacher">設定成 Null 即為移除教師。</param> public static TCInstructRecordEditor SetThirdTeacher(this CourseRecord course, TeacherRecord teacher) { return(SetTeacher(course, teacher, "3")); }
private void Students_listBox_SelectedIndexChanged(object sender, EventArgs e) { this.errMsg_textBox.Text = "Select Student and Grade"; Grade_comboBox.Text = ""; Student student = students[Students_listBox.SelectedIndex]; cr = student.GetTranscript().GetCourseRecordBySectionID(section.GetID()); Grade_comboBox.Text = cr.GetGrade().ToString(); }
private void Semesters_listBox_SelectedIndexChanged(object sender, EventArgs e) { Sections_listBox.Items.Clear(); Students_listBox.Items.Clear(); Grades_listBox.Items.Clear(); this.errMsg_textBox.Text = "Select Student and Grade"; Grade_comboBox.SelectedItem = Grade_comboBox.Items[0]; students = null; section = null; cr = null; Semester sem = semesters[Semesters_listBox.SelectedIndex]; sections = University.Instance.GetSectionsByEmployeeUserIDAndSemester(employee.GetID(), sem); foreach (Section s in sections) { String sectionString = s.GetCourse().GetDepartment() + " "; sectionString += s.GetCourse().GetNumber() + " - "; sectionString += s.GetNumber().ToString().PadLeft(3, '0'); Sections_listBox.Items.Add(sectionString); } }
private void Sections_listBox_SelectedIndexChanged(object sender, EventArgs e) { Students_listBox.Items.Clear(); Grades_listBox.Items.Clear(); this.errMsg_textBox.Text = "Select Student and Grade"; Grade_comboBox.SelectedItem = Grade_comboBox.Items[0]; cr = null; section = sections[Sections_listBox.SelectedIndex]; students = section.GetStudents(); LoadStudentsAndGrades(); }
private void item_click(object sender, EventArgs e) { ButtonItem item = sender as ButtonItem; _targetCourse = item.Tag as CourseRecord; }
public GettingLectureTeacherEventArgs(AccessHelper accessHelper, CourseRecord course) { _AccessHelper = accessHelper; _Course = course; }
private void LoadItems() { dgv.Rows.Clear(); _initialized = false; if (Type.Equals("Exam")) { if (Category.Equals("Subject")) { #region 讀取評量成績科目 List <string> studentIDs = _students.AsKeyList(); Dictionary <string, int> courseCount = new Dictionary <string, int>(); Dictionary <string, int> subjectCount = new Dictionary <string, int>(); Dictionary <string, int> courseCredit = new Dictionary <string, int>(); foreach (Data.JHSCAttendRecord record in _scattends) { CourseRecord course = Course.Instance.Items[record.RefCourseID]; if ("" + course.SchoolYear != cboSchoolYear.Text) { continue; } if ("" + course.Semester != cboSemester.Text) { continue; } if (!courseCount.ContainsKey(record.RefCourseID)) { courseCount.Add(record.RefCourseID, 0); } courseCount[record.RefCourseID]++; if (!courseCredit.ContainsKey(course.Subject)) { int credit; courseCredit.Add(course.Subject, 1); if (int.TryParse(course.Credit, out credit)) { courseCredit[course.Subject] = credit; } } if (!subjectCount.ContainsKey(course.Subject)) { subjectCount.Add(course.Subject, 0); } subjectCount[course.Subject]++; } Dictionary <string, DataGridViewRow> rows = new Dictionary <string, DataGridViewRow>(); foreach (string course_id in courseCount.Keys) { CourseRecord course = Course.Instance.Items[course_id]; if ("" + course.SchoolYear != cboSchoolYear.Text) { continue; } if ("" + course.Semester != cboSemester.Text) { continue; } _courses.Add(course); string subject = course.Subject; if (!rows.ContainsKey(subject)) { DataGridViewRow row = new DataGridViewRow(); row.CreateCells(dgv, false, courseCredit[subject], subject, subjectCount[subject]); dgv.Rows.Add(row); rows.Add(subject, row); } } #endregion } } _initialized = true; }
public CourseTagRecordEditor(CourseRecord course, TagRecord record) { CourseTagRecord = null; RefEntityID = course.ID; RefTagID = record.ID; }
private CourseRecord GetCourseRecord(CourseRecordService courseRecordService) { if (CurrentPerson == null) { return(null); } var rockContext = courseRecordService.Context as RockContext; var courseId = PageParameter(PageParameterKey.CourseId).AsInteger(); var slug = PageParameter(PageParameterKey.Slug); CourseService courseService = new CourseService(rockContext); var course = courseService.Queryable().Where(c => c.Slug == slug).FirstOrDefault(); if (course == null) { course = courseService.Get(courseId); } if (course == null || !course.PersonCanView(CurrentPerson)) { return(null); } var currentPersonAliasIds = CurrentPerson.Aliases.Select(a => a.Id).ToList(); var courseRecord = courseRecordService.Queryable() .Where(cr => cr.CourseId == course.Id) //this course .Where(cr => currentPersonAliasIds.Contains(cr.PersonAliasId)) //for this person .Where(cr => cr.CompletionDateTime == null) //not complete .FirstOrDefault(); if (courseRecord == null) { courseRecord = new CourseRecord { CourseId = course.Id, PersonAliasId = CurrentPersonAliasId.Value }; courseRecordService.Add(courseRecord); rockContext.SaveChanges(); } if (course.ExternalCourseUrl.IsNotNullOrWhiteSpace()) { if (PageParameter(PageParameterKey.Complete).IsNotNullOrWhiteSpace() && Request.UrlReferrer != null) { //This course is external and it has come back to completion. courseRecord.CompletionDateTime = Rock.RockDateTime.Now; courseRecord.Passed = true; rockContext.SaveChanges(); } else //This course is external and we must redirect! { if (course.IsAuthorized(Rock.Security.Authorization.EDIT, CurrentPerson)) { externalRedirectDebug = course.ExternalCourseUrl; return(null); } else { Response.Redirect(course.ExternalCourseUrl, true); } } } return(courseRecord); }
public static CourseRecordEditor GetEditor(this CourseRecord record) { return(new CourseRecordEditor(record)); }
private void CalcWorker_DoWork(object sender, DoWorkEventArgs e) { bool error = false; List <StudentRecord> students = _students; List <string> student_ids = new List <string>(); foreach (StudentRecord each in students) { student_ids.Add(each.ID); } double total = students.Count; double count = 0; #region 寫入學期歷程 if (_studentHistoryDict != null && _studentHistoryDict.Count > 0) { try { List <JHSchool.Data.JHSemesterHistoryRecord> list = new List <JHSchool.Data.JHSemesterHistoryRecord>(); int size = 50; double count2 = 0; double total2 = _studentHistoryDict.Count; foreach (JHSchool.Data.JHSemesterHistoryRecord record in _studentHistoryDict.Values) { if (_calc_worker.CancellationPending) { return; } list.Add(record); count2++; if (list.Count == size) { JHSchool.Data.JHSemesterHistory.Update(list); list.Clear(); _calc_worker.ReportProgress((int)(count2 * 100 / total2), "寫入學期歷程中…"); } } if (list.Count > 0) { JHSchool.Data.JHSemesterHistory.Update(list); list.Clear(); _calc_worker.ReportProgress(100, "學期歷程寫入完成"); } } catch (Exception ex) { MsgBox.Show("寫入學期歷程失敗。" + ex.Message); e.Result = null; return; } } #endregion #region 計算課程成績 _viewer.Clear(); _viewer.SetHeader("課程"); _calc_worker.ReportProgress(0, "計算課程成績…"); if (_calc_worker.CancellationPending) { return; } _raw_data = new CourseDataLoader(); _raw_data.LoadCalculationData(this, _students, intSchoolYear.Value, intSemester.Value); foreach (CW.Course course in _raw_data.Courses.Values) { if (string.IsNullOrEmpty(course.ExamTemplateId) && course.ExamRequired) { _viewer.SetMessage(course.CourseName, new List <string>(new string[] { "缺少評量設定" })); error = true; } } if (error) { e.Result = error; return; } _viewer.Clear(); if (_calc_worker.CancellationPending) { return; } CourseScoreCalculate calculate = new CourseScoreCalculate(_raw_data.Courses); calculate.Calculate(); foreach (CW.Course course in _raw_data.Courses.Values) { Dictionary <string, string> examLacks = new Dictionary <string, string>(); Dictionary <string, int> examScoreLacks = new Dictionary <string, int>(); Dictionary <string, int> examEffortLacks = new Dictionary <string, int>(); List <CW.SCAttend> scattends = new List <CW.SCAttend>(); List <CW.SCAttend> no_exam_scattends = new List <CW.SCAttend>(); foreach (CW.SCAttend scattend in course.SCAttends.Values) { if (student_ids.Contains(scattend.StudentIdentity)) { if (scattend.ContainsLack) { scattends.Add(scattend); } if (scattend.NoExam) { no_exam_scattends.Add(scattend); } } } foreach (CW.SCAttend scattend in scattends) { foreach (string exam in scattend.ScoreLack) { if (!examLacks.ContainsKey(exam)) { examLacks.Add(exam, ""); } if (!examScoreLacks.ContainsKey(exam)) { examScoreLacks.Add(exam, 0); } examScoreLacks[exam]++; } foreach (string exam in scattend.EffortLack) { if (!examLacks.ContainsKey(exam)) { examLacks.Add(exam, ""); } if (!examEffortLacks.ContainsKey(exam)) { examEffortLacks.Add(exam, 0); } examEffortLacks[exam]++; } } if (scattends.Count > 0) { List <string> msgs = new List <string>(); foreach (string exam in new List <string>(examLacks.Keys)) { if (examScoreLacks.ContainsKey(exam)) { examLacks[exam] += "有" + examScoreLacks[exam] + "位學生缺少分數評量,"; } if (examEffortLacks.ContainsKey(exam)) { examLacks[exam] += "有" + examEffortLacks[exam] + "位學生缺少努力程度,"; } if (!string.IsNullOrEmpty(examLacks[exam])) { examLacks[exam] = examLacks[exam].Substring(0, examLacks[exam].Length - 1); } msgs.Add(exam + ":" + examLacks[exam]); } _viewer.SetMessage(course.CourseName, msgs); error = true; } if (no_exam_scattends.Count > 0) { _viewer.SetMessage(course.CourseName, new List <string>(new string[] { "沒有設定各次評量" })); error = true; } } if (error) { e.Result = true; return; } if (_calc_worker.CancellationPending) { return; } CourseScoreUpdater updater = new CourseScoreUpdater(_raw_data.Courses, this, false); updater.UpdateToServer(); #endregion #region 計算學期成績 //List<SemesterScoreRecordEditor> editors = new List<SemesterScoreRecordEditor>(); List <JHSemesterScoreRecord> semesterScoreRecordList = new List <JHSchool.Data.JHSemesterScoreRecord>(); JHSchool.Evaluation.SCAttend.Instance.SyncAllBackground(); Dictionary <string, List <JHSemesterScoreRecord> > studentSemesterScoreCache = new Dictionary <string, List <JHSchool.Data.JHSemesterScoreRecord> >(); foreach (JHSemesterScoreRecord record in JHSemesterScore.SelectByStudentIDs(students.AsKeyList())) { if (!studentSemesterScoreCache.ContainsKey(record.RefStudentID)) { studentSemesterScoreCache.Add(record.RefStudentID, new List <JHSchool.Data.JHSemesterScoreRecord>()); } studentSemesterScoreCache[record.RefStudentID].Add(record); } count = 0; foreach (StudentRecord each in students) { count++; ScoreCalcRuleRecord old = GetScoreCalcRuleRecord(each); JHScoreCalcRuleRecord dalrecord = null; if (old != null) { List <JHScoreCalcRuleRecord> list = JHScoreCalcRule.SelectByIDs(new string[] { old.ID }); if (list.Count > 0) { dalrecord = list[0]; } } ScoreCalculator calculator = new ScoreCalculator(dalrecord); List <SCAttendRecord> scattends = new List <SCAttendRecord>(); foreach (SCAttendRecord scattend in JHSchool.Evaluation.SCAttend.Instance.GetStudentAttend(each.ID)) { CourseRecord course = scattend.Course; if (course.SchoolYear == intSchoolYear.Value && course.Semester == intSemester.Value && !string.IsNullOrEmpty(course.RefAssessmentSetupID) && course.CalculationFlag == "1" ) { scattends.Add(scattend); } } if (scattends.Count > 0) { List <K12.Data.SubjectScore> subjectScores = _inner_calculator.CalculateSubjectScore(scattends); foreach (K12.Data.SubjectScore subject in subjectScores) { subject.Score = calculator.ParseSubjectScore((decimal)subject.Score); } List <K12.Data.DomainScore> domainScores = _inner_calculator.CalculateDomainScore(subjectScores); foreach (K12.Data.DomainScore domain in domainScores) { domain.Score = calculator.ParseDomainScore((decimal)domain.Score); } List <K12.Data.DomainScore> domainListWithoutElastic = new List <K12.Data.DomainScore>(); bool hasElasticCourse = false; foreach (K12.Data.DomainScore domain in domainScores) { if (domain.Domain == "彈性課程") { hasElasticCourse = true; } else { domainListWithoutElastic.Add(domain); } } decimal?learnDomainScore = calculator.ParseLearnDomainScore(_inner_calculator.CalculateTotalDomainScore(domainListWithoutElastic)); decimal?courseLearnScore = null; if (hasElasticCourse) { courseLearnScore = calculator.ParseLearnDomainScore(_inner_calculator.CalculateTotalDomainScore(domainScores)); } JHSemesterScoreRecord current = null; if (studentSemesterScoreCache.ContainsKey(each.ID)) { foreach (JHSemesterScoreRecord record in studentSemesterScoreCache[each.ID]) { if (record.SchoolYear == intSchoolYear.Value && record.Semester == intSemester.Value) { current = record; } } } if (current != null) { //editor = current.GetEditor(); current.Subjects = new Dictionary <string, K12.Data.SubjectScore>(); current.Domains = new Dictionary <string, K12.Data.DomainScore>(); } else { //current = new SemesterScoreRecordEditor(each, intSchoolYear.Value, intSemester.Value, _gradeYears[each.ID]); current = new JHSchool.Data.JHSemesterScoreRecord(); current.RefStudentID = each.ID; current.SchoolYear = intSchoolYear.Value; current.Semester = intSemester.Value; } foreach (K12.Data.SubjectScore subject in subjectScores) { current.Subjects.Add(subject.Subject, subject); } foreach (K12.Data.DomainScore domain in domainScores) { current.Domains.Add(domain.Domain, domain); } current.LearnDomainScore = learnDomainScore; current.CourseLearnScore = courseLearnScore; //editors.Add(editor); semesterScoreRecordList.Add(current); } _calc_worker.ReportProgress((int)((double)count * 100 / (double)total), "計算學期成績…"); } e.Result = semesterScoreRecordList; #endregion }
/// <summary> /// Generate Search criteria from the keywords /// </summary> /// <returns>Search query where condition</returns> private string buildSearchCriteria() { CourseRecord oCourseRecord = (CourseRecord)Session[LACESConstant.SessionKeys.COURSE_RECORD_OBJ]; string searchQuery = ""; if (oCourseRecord.ASLANumber != "") { searchQuery += "ASLAMemberNumber LIKE '" + oCourseRecord.ASLANumber + "%'"; } if (oCourseRecord.CLARBNumber != "") { if (searchQuery != "") { searchQuery += " AND "; } searchQuery += "CLARBNumber LIKE '" + oCourseRecord.CLARBNumber + "%'"; } if (oCourseRecord.CSLANumber != "") { if (searchQuery != "") { searchQuery += " AND "; } searchQuery += "CSLANumber LIKE '" + oCourseRecord.CSLANumber + "%'"; } if (oCourseRecord.FirstName != "") { if (searchQuery != "") { searchQuery += " AND "; } searchQuery += "FirstName LIKE '" + oCourseRecord.FirstName + "%'"; } if (oCourseRecord.FLNumber != "") { if (searchQuery != "") { searchQuery += " AND "; } searchQuery += "FloridaStateNumber LIKE '" + oCourseRecord.FLNumber + "%'"; } if (oCourseRecord.LastName != "") { if (searchQuery != "") { searchQuery += " AND "; } searchQuery += "LastName LIKE '" + oCourseRecord.LastName + "%'"; } if (oCourseRecord.MiddleInitial != "") { if (searchQuery != "") { searchQuery += " AND "; } searchQuery += "MiddleInitial LIKE '" + oCourseRecord.MiddleInitial + "%'"; } if (oCourseRecord.Email != "") { if (searchQuery != "") { searchQuery += " AND "; } searchQuery += "Email LIKE '" + oCourseRecord.Email + "%'"; } ///For blank search if (searchQuery == "") { searchQuery = " 1 = 1 "; } return(searchQuery); }
public static void Main() { //診斷模式不要執行 UDM 更新。 if (!RTContext.IsDiagMode) { ServerModule.AutoManaged("http://module.ischool.com.tw/module/137815/School_IBSH/udm.xml"); } // 課程加入教師檢視 Course.Instance.AddView(new TeacherCategoryView()); //Sync UDT Table AccessHelper a = new AccessHelper(); a.Select <ConductRecord>("uid is null"); a.Select <CourseExtendRecord>("uid is null"); a.Select <ConductSetting>("uid is null"); a.Select <SubjectRecord>("uid is null"); a.Select <GpaRef>("uid is null"); #region 限註冊 // 學生 Catalog ribbon = RoleAclSource.Instance["學生"]["功能按鈕"]; ribbon.Add(new RibbonFeature("JHSchool.Student.Ribbon0169", "匯出學期歷程")); ribbon.Add(new RibbonFeature("JHSchool.Student.Ribbon0170", "匯入學期歷程")); ribbon.Add(new RibbonFeature("JHSchool.Student.SubjectScoreCalculate", "計算科目成績")); ribbon = RoleAclSource.Instance["學生"]["資料項目"]; ribbon.Add(new DetailItemFeature("JHSchool.Student.Detail.SemsScore", "學期成績")); //班級 ribbon = RoleAclSource.Instance["班級"]["功能按鈕"]; ribbon.Add(new RibbonFeature("JHSchool.Class.Ribbon0070", "班級開課")); ribbon.Add(new RibbonFeature("JHSchool.Class.Ribbon0070.HrtConductInputForm", "指標輸入")); // 課程 ribbon = RoleAclSource.Instance["課程"]["功能按鈕"]; ribbon.Add(new RibbonFeature("JHSchool.Course.Ribbon0031", "匯出課程修課學生")); ribbon.Add(new RibbonFeature("JHSchool.Course.Ribbon0021", "匯入課程修課學生")); ribbon.Add(new RibbonFeature("JHSchool.Course.Ribbon0070.CourseScoreInputForm", "成績輸入")); ribbon.Add(new RibbonFeature("JHSchool.Course.Ribbon0070.SubjectConductInputForm", "指標輸入")); ribbon.Add(new RibbonFeature("JHSchool.Course.Ribbon0070.CourseGradeEditor", "批次修改開課年級")); ribbon = RoleAclSource.Instance["課程"]["資料項目"]; ribbon.Add(new DetailItemFeature("JHSchool.Course.Detail.BasicInfo", "基本資料")); ribbon.Add(new DetailItemFeature("JHSchool.Course.Detail.AttendStudent", "修課學生")); //教務作業 ribbon = RoleAclSource.Instance["教務作業"]; //ribbon.Add(new RibbonFeature("JHSchool.EduAdmin.Ribbon0000", "評量名稱管理")); ribbon.Add(new RibbonFeature("JHSchool.EduAdmin.Ribbon.SubjectManager", "科目資料管理")); ribbon.Add(new RibbonFeature("CourseGradeB.EduAdminExtendControls.Ribbon.SetHoursOpeningForm", "開放時間管理")); ribbon.Add(new RibbonFeature("CourseGradeB.EduAdminExtendControls.Ribbon.SubjectScoreCalculateByGradeyear", "批次計算科目成績")); ribbon.Add(new RibbonFeature("CourseGradeB.EduAdminExtendControls.Ribbon.GpaRefForm", "歷屆GPA統計")); ribbon.Add(new RibbonFeature("CourseGradeB.EduAdminExtendControls.Ribbon.SemsHistoryMaker", "產生學期歷程")); ribbon.Add(new RibbonFeature("CourseGradeB.EduAdminExtendControls.Ribbon.CourseScoreStatusForm", "輸入狀況檢視(評量成績)")); ribbon.Add(new RibbonFeature("CourseGradeB.EduAdminExtendControls.Ribbon.HRTConductStatusForm", "輸入狀況檢視(Conduct班導師)")); ribbon.Add(new RibbonFeature("CourseGradeB.EduAdminExtendControls.Ribbon.SubjectConductStatusForm", "輸入狀況檢視(Conduct授課老師)")); //ribbon.Add(new RibbonFeature("JHSchool.EduAdmin.Ribbon.ExamTemplateManager", "評分樣板設定")); //學務作業 ribbon = RoleAclSource.Instance["學務作業"]; ribbon.Add(new RibbonFeature("JHSchool.StuAdmin.Ribbon.ConductTitleManager", "指標管理")); #endregion #region 資料項目 // 基本資料 //Course.Instance.AddDetailBulider(new JHSchool.Legacy.ContentItemBulider<BasicInfoItem>()); Course.Instance.AddDetailBulider(new JHSchool.Legacy.ContentItemBulider <BasicInfoItem>()); // 修課學生 Course.Instance.AddDetailBulider(new JHSchool.Legacy.ContentItemBulider <SCAttendItem>()); // 學期成績 Student.Instance.AddDetailBulider(new JHSchool.Legacy.ContentItemBulider <SemsSubjScoreItem>()); #endregion #region 課程/編輯 RibbonBarItem rbItem = Student.Instance.RibbonBarItems["教務"]; RibbonBarButton rbButton; rbItem = Course.Instance.RibbonBarItems["編輯"]; rbButton = rbItem["新增"]; rbButton.Size = RibbonBarButton.MenuButtonSize.Large; rbButton.Image = Properties.Resources.btnAddCourse; rbButton.Enable = User.Acl["JHSchool.Course.Ribbon0000"].Executable; rbButton.Click += delegate { new CourseGradeB.CourseExtendControls.Ribbon.AddCourse().ShowDialog(); }; rbButton = rbItem["刪除"]; rbButton.Size = RibbonBarButton.MenuButtonSize.Large; rbButton.Image = Properties.Resources.btnDeleteCourse; rbButton.Enable = User.Acl["JHSchool.Course.Ribbon0010"].Executable; rbButton.Click += delegate { if (Course.Instance.SelectedKeys.Count == 1) { JHSchool.Data.JHCourseRecord record = JHSchool.Data.JHCourse.SelectByID(Course.Instance.SelectedKeys[0]); //int CourseAttendCot = Course.Instance.Items[record.ID].GetAttendStudents().Count; List <JHSchool.Data.JHSCAttendRecord> scattendList = JHSchool.Data.JHSCAttend.SelectByStudentIDAndCourseID(new List <string>() { }, new List <string>() { record.ID }); int attendStudentCount = 0; foreach (JHSchool.Data.JHSCAttendRecord scattend in scattendList) { if (scattend.Student.Status == K12.Data.StudentRecord.StudentStatus.一般) { attendStudentCount++; } } if (attendStudentCount > 0) { MsgBox.Show(record.Name + " 有" + attendStudentCount.ToString() + "位修課學生,請先移除修課學生後再刪除課程."); } else { string msg = string.Format("確定要刪除「{0}」?", record.Name); if (MsgBox.Show(msg, "刪除課程", MessageBoxButtons.YesNo) == DialogResult.Yes) { #region 自動刪除非一般學生的修課記錄 List <JHSchool.Data.JHSCAttendRecord> deleteSCAttendList = new List <JHSchool.Data.JHSCAttendRecord>(); foreach (JHSchool.Data.JHSCAttendRecord scattend in scattendList) { JHSchool.Data.JHStudentRecord stuRecord = JHSchool.Data.JHStudent.SelectByID(scattend.RefStudentID); if (stuRecord == null) { continue; } if (stuRecord.Status != K12.Data.StudentRecord.StudentStatus.一般) { deleteSCAttendList.Add(scattend); } } List <string> studentIDs = new List <string>(); foreach (JHSchool.Data.JHSCAttendRecord scattend in deleteSCAttendList) { studentIDs.Add(scattend.RefStudentID); } List <JHSchool.Data.JHSCETakeRecord> sceList = JHSchool.Data.JHSCETake.SelectByStudentAndCourse(studentIDs, new List <string>() { record.ID }); JHSchool.Data.JHSCETake.Delete(sceList); JHSchool.Data.JHSCAttend.Delete(deleteSCAttendList); #endregion JHSchool.Data.JHCourse.Delete(record); //刪除CourseExtendRecord List <CourseExtendRecord> list = a.Select <CourseExtendRecord>("ref_course_id=" + record.ID); if (list.Count > 0) { a.DeletedValues(list); } // 加這主要是重新整理 Course.Instance.SyncDataBackground(record.ID); } else { return; } } } }; RibbonBarButton CouItem = Course.Instance.RibbonBarItems["編輯"]["刪除"]; Course.Instance.SelectedListChanged += delegate { // 課程刪除不能多選 CouItem.Enable = (Course.Instance.SelectedList.Count < 2) && User.Acl["JHSchool.Course.Ribbon0010"].Executable; }; //指定評分樣板 //CouItem = Course.Instance.RibbonBarItems["指定"]["指定評分樣板"]; //Course.Instance.SelectedListChanged += delegate //{ // CouItem.Enable = (Course.Instance.SelectedList.Count > 0); //}; //CouItem.Click += delegate //{ // new CourseGradeB.CourseExtendControls.Ribbon.GiveRefExamTemplateForm(K12.Presentation.NLDPanels.Course.SelectedSource).ShowDialog(); //}; RibbonBarItem scores = JHSchool.Course.Instance.RibbonBarItems["教務"]; scores["成績輸入"].Size = RibbonBarButton.MenuButtonSize.Medium; scores["成績輸入"].Image = Properties.Resources.exam_write_64; scores["成績輸入"].Enable = Framework.User.Acl["JHSchool.Course.Ribbon0070.CourseScoreInputForm"].Executable; scores["成績輸入"].Click += delegate { if (K12.Presentation.NLDPanels.Course.SelectedSource.Count == 1) { CourseRecord courseRecord = Course.Instance.SelectedList[0]; //int key = int.Parse(courseRecord.ID); //int value = Global.Instance.CourseExtendCatch.ContainsKey(key) ? Global.Instance.CourseExtendCatch[key] : -1; //if (value == -1) // FISCA.Presentation.Controls.MsgBox.Show("課程 '" + courseRecord.Name + "' 沒有評量設定。"); //else new CourseGradeB.CourseExtendControls.Ribbon.CourseScoreInputForm(courseRecord).ShowDialog(); } }; K12.Presentation.NLDPanels.Course.SelectedSourceChanged += delegate { scores["成績輸入"].Enable = K12.Presentation.NLDPanels.Course.SelectedSource.Count == 1 && Framework.User.Acl["JHSchool.Course.Ribbon0070.CourseScoreInputForm"].Executable; }; RibbonBarItem conduct = JHSchool.Course.Instance.RibbonBarItems["教務"]; conduct["指標輸入"].Size = RibbonBarButton.MenuButtonSize.Medium; conduct["指標輸入"].Image = Properties.Resources.exam_write_64; conduct["指標輸入"].Enable = Framework.User.Acl["JHSchool.Course.Ribbon0070.SubjectConductInputForm"].Executable; conduct["指標輸入"].Click += delegate { if (K12.Presentation.NLDPanels.Course.SelectedSource.Count == 1) { CourseRecord courseRecord = Course.Instance.SelectedList[0]; new CourseGradeB.CourseExtendControls.Ribbon.SubjectConductInputForm(courseRecord).ShowDialog(); } }; K12.Presentation.NLDPanels.Course.SelectedSourceChanged += delegate { conduct["指標輸入"].Enable = K12.Presentation.NLDPanels.Course.SelectedSource.Count == 1 && Framework.User.Acl["JHSchool.Course.Ribbon0070.SubjectConductInputForm"].Executable; }; RibbonBarItem editGrade = JHSchool.Course.Instance.RibbonBarItems["指定"]; editGrade["批次修改開課年級"].Size = RibbonBarButton.MenuButtonSize.Medium; editGrade["批次修改開課年級"].Image = Properties.Resources.record_b_write_64; editGrade["批次修改開課年級"].Enable = Framework.User.Acl["JHSchool.Course.Ribbon0070.CourseGradeEditor"].Executable; editGrade["批次修改開課年級"].Click += delegate { if (K12.Presentation.NLDPanels.Course.SelectedSource.Count > 0) { new CourseGradeB.CourseExtendControls.Ribbon.CourseGradeEditor(K12.Presentation.NLDPanels.Course.SelectedSource).ShowDialog(); } }; K12.Presentation.NLDPanels.Course.SelectedSourceChanged += delegate { editGrade["批次修改開課年級"].Enable = K12.Presentation.NLDPanels.Course.SelectedSource.Count > 0 && Framework.User.Acl["JHSchool.Course.Ribbon0070.CourseGradeEditor"].Executable; }; #endregion #region 匯出/匯入 RibbonBarButton rbItemExport = Student.Instance.RibbonBarItems["資料統計"]["匯出"]; RibbonBarButton rbItemImport = Student.Instance.RibbonBarItems["資料統計"]["匯入"]; rbItemExport["成績相關匯出"]["匯出學期歷程"].Enable = User.Acl["JHSchool.Student.Ribbon0169"].Executable; rbItemExport["成績相關匯出"]["匯出學期歷程"].Click += delegate { SmartSchool.API.PlugIn.Export.Exporter exporter = new CourseGradeB.ImportExport.ExportSemesterHistory(); CourseGradeB.ImportExport.ExportStudentV2 wizard = new CourseGradeB.ImportExport.ExportStudentV2(exporter.Text, exporter.Image); exporter.InitializeExport(wizard); wizard.ShowDialog(); }; rbItemImport["成績相關匯入"]["匯入學期歷程"].Enable = User.Acl["JHSchool.Student.Ribbon0170"].Executable; rbItemImport["成績相關匯入"]["匯入學期歷程"].Click += delegate { SmartSchool.API.PlugIn.Import.Importer importer = new CourseGradeB.ImportExport.ImportSemesterHistory(); CourseGradeB.ImportExport.ImportStudentV2 wizard = new CourseGradeB.ImportExport.ImportStudentV2(importer.Text, importer.Image); importer.InitializeImport(wizard); wizard.ShowDialog(); }; RibbonBarItem rbItemCourseImportExport = Course.Instance.RibbonBarItems["資料統計"]; rbItemCourseImportExport["匯出"]["匯出課程修課學生"].Enable = User.Acl["JHSchool.Course.Ribbon0031"].Executable; rbItemCourseImportExport["匯出"]["匯出課程修課學生"].Click += delegate { SmartSchool.API.PlugIn.Export.Exporter exporter = new CourseGradeB.ImportExport.Course.ExportCourseStudents(""); CourseGradeB.ImportExport.Course.ExportStudentV2 wizard = new CourseGradeB.ImportExport.Course.ExportStudentV2(exporter.Text, exporter.Image); exporter.InitializeExport(wizard); wizard.ShowDialog(); }; rbItemCourseImportExport["匯入"]["匯入課程修課學生"].Enable = User.Acl["JHSchool.Course.Ribbon0021"].Executable; rbItemCourseImportExport["匯入"]["匯入課程修課學生"].Click += delegate { SmartSchool.API.PlugIn.Import.Importer importer = new CourseGradeB.ImportExport.Course.ImportCourseStudents(""); CourseGradeB.ImportExport.Course.ImportStudentV2 wizard = new CourseGradeB.ImportExport.Course.ImportStudentV2(importer.Text, importer.Image); importer.InitializeImport(wizard); wizard.ShowDialog(); }; #endregion #region 班級功能 rbButton = K12.Presentation.NLDPanels.Class.RibbonBarItems["教務"]["班級開課"]; rbButton.Enable = User.Acl["JHSchool.Class.Ribbon0070"].Executable; rbButton.Image = Properties.Resources.organigram_refresh_64; rbButton["直接開課"].Click += delegate { if (Class.Instance.SelectedList.Count > 0) { new CourseGradeB.ClassExtendControls.Ribbon.CreateCoursesDirectly(); } }; RibbonBarItem hrtConduct = JHSchool.Class.Instance.RibbonBarItems["教務"]; hrtConduct["指標輸入"].Size = RibbonBarButton.MenuButtonSize.Medium; hrtConduct["指標輸入"].Image = Properties.Resources.exam_write_64; hrtConduct["指標輸入"].Enable = Framework.User.Acl["JHSchool.Class.Ribbon0070.HrtConductInputForm"].Executable; hrtConduct["指標輸入"].Click += delegate { if (K12.Presentation.NLDPanels.Class.SelectedSource.Count == 1) { new CourseGradeB.ClassExtendControls.Ribbon.HrtSelectSchoolYear(K12.Presentation.NLDPanels.Class.SelectedSource[0]).ShowDialog(); } }; K12.Presentation.NLDPanels.Class.SelectedSourceChanged += delegate { hrtConduct["指標輸入"].Enable = K12.Presentation.NLDPanels.Class.SelectedSource.Count == 1 && Framework.User.Acl["JHSchool.Class.Ribbon0070.HrtConductInputForm"].Executable; }; #endregion #region 教務作業功能 FISCA.Presentation.RibbonBarItem eduitem1 = FISCA.Presentation.MotherForm.RibbonBarItems["教務作業", "基本設定"]; eduitem1["對照/代碼"].Image = Properties.Resources.notepad_lock_64; eduitem1["對照/代碼"].Size = FISCA.Presentation.RibbonBarButton.MenuButtonSize.Large; FISCA.Presentation.RibbonBarItem eduitem2 = FISCA.Presentation.MotherForm.RibbonBarItems["教務作業", "批次作業/檢視"]; eduitem2["成績作業"].Image = Properties.Resources.calc_save_64; eduitem2["成績作業"].Size = FISCA.Presentation.RibbonBarButton.MenuButtonSize.Large; eduitem2["成績作業"]["批次計算科目成績"].Enable = User.Acl["CourseGradeB.EduAdminExtendControls.Ribbon.SubjectScoreCalculateByGradeyear"].Executable; eduitem2["成績作業"]["批次計算科目成績"].Click += delegate { new CourseGradeB.EduAdminExtendControls.Ribbon.SubjectScoreCalculateByGradeyear().ShowDialog(); }; eduitem2["成績作業"]["歷屆GPA統計"].Enable = User.Acl["CourseGradeB.EduAdminExtendControls.Ribbon.GpaRefForm"].Executable; eduitem2["成績作業"]["歷屆GPA統計"].Click += delegate { new GpaRefForm().ShowDialog(); }; //產生學期歷程 eduitem2["成績作業"]["產生學期歷程"].Enable = User.Acl["CourseGradeB.EduAdminExtendControls.Ribbon.SemsHistoryMaker"].Executable; eduitem2["成績作業"]["產生學期歷程"].Click += delegate { new CourseGradeB.EduAdminExtendControls.Ribbon.SemsHistoryMaker().ShowDialog(); }; //評量輸入狀況檢視 eduitem2["成績作業"]["輸入狀況檢視(評量成績)"].Enable = User.Acl["CourseGradeB.EduAdminExtendControls.Ribbon.CourseScoreStatusForm"].Executable; eduitem2["成績作業"]["輸入狀況檢視(評量成績)"].Click += delegate { new CourseGradeB.EduAdminExtendControls.Ribbon.CourseScoreStatusForm().ShowDialog(); }; //Conduct輸入狀況檢視(班導師) eduitem2["成績作業"]["輸入狀況檢視(Conduct、StandardBase班導師)"].Enable = User.Acl["CourseGradeB.EduAdminExtendControls.Ribbon.HRTConductStatusForm"].Executable; eduitem2["成績作業"]["輸入狀況檢視(Conduct、StandardBase班導師)"].Click += delegate { new CourseGradeB.EduAdminExtendControls.Ribbon.HRTConductStatusForm().ShowDialog(); }; //Conduct輸入狀況檢視(授課老師) eduitem2["成績作業"]["輸入狀況檢視(Conduct、StandardBase授課老師)"].Enable = User.Acl["CourseGradeB.EduAdminExtendControls.Ribbon.SubjectConductStatusForm"].Executable; eduitem2["成績作業"]["輸入狀況檢視(Conduct、StandardBase授課老師)"].Click += delegate { new CourseGradeB.EduAdminExtendControls.Ribbon.SubjectConductStatusForm().ShowDialog(); }; RibbonBarItem eduitem3 = EduAdmin.Instance.RibbonBarItems["基本設定"]; eduitem3["管理"].Size = RibbonBarButton.MenuButtonSize.Large; eduitem3["管理"].Image = Properties.Resources.network_lock_64; //rbItem["管理"]["評量名稱管理"].Enable = User.Acl["JHSchool.EduAdmin.Ribbon0000"].Executable; //rbItem["管理"]["評量名稱管理"].Click += delegate //{ // new CourseGradeB.CourseExtendControls.Ribbon.ExamManager().ShowDialog(); //}; eduitem3["管理"]["科目資料管理"].Enable = User.Acl["JHSchool.EduAdmin.Ribbon.SubjectManager"].Executable; eduitem3["管理"]["科目資料管理"].Click += delegate { new CourseGradeB.EduAdminExtendControls.Ribbon.SubjectManager().ShowDialog(); }; eduitem3["管理"]["開放時間管理"].Enable = User.Acl["CourseGradeB.EduAdminExtendControls.Ribbon.SetHoursOpeningForm"].Executable; eduitem3["管理"]["開放時間管理"].Click += delegate { new CourseGradeB.EduAdminExtendControls.Ribbon.SetHoursOpeningForm().ShowDialog(); }; //rbItem["設定"].Image = Properties.Resources.sandglass_unlock_64; //rbItem["設定"].Size = RibbonBarButton.MenuButtonSize.Large; //rbItem["設定"]["評分樣板設定"].Enable = User.Acl["JHSchool.EduAdmin.Ribbon.ExamTemplateManager"].Executable; //rbItem["設定"]["評分樣板設定"].Click += delegate //{ // new CourseGradeB.EduAdminExtendControls.Ribbon.ExamTemplateManager().ShowDialog(); //}; #endregion #region 學務作業功能 FISCA.Presentation.RibbonBarItem stuitem1 = FISCA.Presentation.MotherForm.RibbonBarItems["學務作業", "基本設定"]; //item3["管理"].Image = Properties.Resources.network_lock_64; //item3["管理"].Size = FISCA.Presentation.RibbonBarButton.MenuButtonSize.Large; stuitem1["管理"]["指標管理"].Enable = User.Acl["JHSchool.StuAdmin.Ribbon.ConductTitleManager"].Executable; stuitem1["管理"]["指標管理"].Click += delegate { new CourseGradeB.StuAdminExtendControls.ConductSettingForm().ShowDialog(); }; #endregion #region 學生功能 //註冊成績計算功能項目。 FISCA.Presentation.RibbonBarItem student_rbitem = FISCA.Presentation.MotherForm.RibbonBarItems["學生", "教務"]; student_rbitem["成績作業"].Size = RibbonBarButton.MenuButtonSize.Large; student_rbitem["成績作業"].Image = Properties.Resources.calc_save_64; student_rbitem["成績作業"]["計算科目成績"].Enable = false; K12.Presentation.NLDPanels.Student.SelectedSourceChanged += delegate { student_rbitem["成績作業"]["計算科目成績"].Enable = K12.Presentation.NLDPanels.Student.SelectedSource.Count > 0 && User.Acl["JHSchool.Student.SubjectScoreCalculate"].Executable; }; student_rbitem["成績作業"]["計算科目成績"].Click += delegate { new CourseGradeB.StudentExtendControls.Ribbon.SubjectScoreCalculate(K12.Presentation.NLDPanels.Student.SelectedSource).ShowDialog(); }; #endregion //教師系統類別 Tagging.Main(); ResCourseData(); }
private void btnRank_Click(object sender, EventArgs e) { if (!IsValid()) { MsgBox.Show("輸入資料不正確,請先修正。"); return; } _collector.Clear(); if (Type.Equals("Exam")) { try { #region 評量成績排名 if (Category.Equals("Subject")) { #region 科目 //將使用者選擇的「科目名稱、權重」集中於 subjects 集合。 Dictionary <string, decimal> subjects = new Dictionary <string, decimal>(); foreach (DataGridViewRow row in dgv.Rows) { string value = "" + row.Cells[chCheck.Index].Value; bool b; if (bool.TryParse(value, out b) && b == true) { string subject = "" + row.Cells[chCategory.Index].Value; decimal period = decimal.Parse("" + row.Cells[chPeriod.Index].Value); subjects.Add(subject, period); } } //_courses 轉換成 ID 清單,如果該課程的科目使用者並沒有選擇就過慮掉。 List <string> courseIDs = new List <string>(); foreach (CourseRecord record in _courses) { if (subjects.ContainsKey(record.Subject)) { courseIDs.Add(record.ID); } } //取得課程的特定評量成績。 List <Data.JHSCETakeRecord> sce_records = Data.JHSCETake.SelectByCourseAndExam(courseIDs, (cboExam.SelectedItem as Data.JHExamRecord).ID); Dictionary <string, Data.JHSCETakeRecord> dic_sce = AsDictionary(sce_records); if (rbSeparate.Checked) { #region 分科排名 List <string> studentIDs = _students.AsKeyList(); Dictionary <string, RankData> data = new Dictionary <string, RankData>(); foreach (string each in subjects.Keys) { data.Add(each, new RankData()); data[each].Name = each; } foreach (Data.JHSCAttendRecord record in _scattends) { CourseRecord course = Course.Instance.Items[record.RefCourseID]; if ("" + course.SchoolYear != cboSchoolYear.Text) { continue; } if ("" + course.Semester != cboSemester.Text) { continue; } if (!subjects.ContainsKey(course.Subject)) { continue; } RankData rankData = data[course.Subject]; decimal? score = null; if (dic_sce.ContainsKey(record.ID)) { Data.JHSCETakeRecord jr = dic_sce[record.ID]; score = jr.Score; } if (rankData.ContainsKey(record.RefStudentID)) { throw new ArgumentException(string.Format("學生「{0}」在同一學期修習「{1}」科目一次以上。", Student.Instance[record.RefStudentID].Name, course.Subject)); } if (score.HasValue) { rankData.Add(record.RefStudentID, new RankScore(score.Value, null)); } else if (UseZero) { rankData.Add(record.RefStudentID, new RankScore(0, null)); } } foreach (RankData rankData in data.Values) { _collector.AddRankData(rankData); } #endregion } else { #region 運算排名 List <string> studentIDs = _students.AsKeyList(); Dictionary <string, RankData> data = new Dictionary <string, RankData>(); foreach (string each in subjects.Keys) { data.Add(each, new RankData()); data[each].Name = each; } foreach (Data.JHSCAttendRecord record in _scattends) { CourseRecord course = Course.Instance.Items[record.RefCourseID]; if ("" + course.SchoolYear != cboSchoolYear.Text) { continue; } if ("" + course.Semester != cboSemester.Text) { continue; } if (!subjects.ContainsKey(course.Subject)) { continue; } RankData rankData = data[course.Subject]; decimal? score = null; if (dic_sce.ContainsKey(record.ID)) { Data.JHSCETakeRecord jr = dic_sce[record.ID]; score = jr.Score; } if (rankData.ContainsKey(record.RefStudentID)) { throw new ArgumentException(string.Format("學生「{0}」在同一學期修習「{1}」科目一次以上。", Student.Instance[record.RefStudentID].Name, course.Subject)); } if (score.HasValue) { rankData.Add(record.RefStudentID, new RankScore(score.Value, null)); } else if (UseZero) { rankData.Add(record.RefStudentID, new RankScore(0, null)); } } RankData combineData = new RankData(); combineData.Name = CombineRankType.ToString(); //<學生編號,<科目名稱,成績>> Dictionary <string, Dictionary <string, decimal> > combineScore = new Dictionary <string, Dictionary <string, decimal> >(); decimal periodCount = 0; foreach (RankData rankData in data.Values) //每一個 rankData 是特定科目的所有成績。 { foreach (string stuId in rankData.Keys) //id 是學生編號。 { if (!combineScore.ContainsKey(stuId)) { combineScore.Add(stuId, new Dictionary <string, decimal>()); } if (!combineScore[stuId].ContainsKey(rankData.Name)) //rankData.Name 是科目名稱。 { if (CombineRankType == CombineRankType.加權平均 || CombineRankType == CombineRankType.加權總分) { combineScore[stuId].Add(rankData.Name, rankData[stuId].Score * subjects[rankData.Name]); } else { combineScore[stuId].Add(rankData.Name, rankData[stuId].Score); } } } //加總科目權重。 if (CombineRankType == CombineRankType.加權平均) { periodCount += subjects[rankData.Name]; } } foreach (string id in combineScore.Keys) { decimal total = 0; foreach (decimal score in combineScore[id].Values) { total += score; } if (CombineRankType == CombineRankType.加權平均) { total = total / periodCount; } else if (CombineRankType == CombineRankType.算數平均) { total = total / combineScore[id].Count; } if (!combineData.ContainsKey(id)) { total = decimal.Round(total, Carry, MidpointRounding.AwayFromZero); combineData.Add(id, new RankScore(total, null)); } } combineData.Tag = data; _collector.AddRankData(combineData); #endregion } _collector.Perform(); _collector.Export(rbCombine.Checked, rbAllRank.Checked, txtTopRank.Text, (chkPrintByClass.Enabled) ? chkPrintByClass.Checked : false, _reportName); #endregion } #endregion } catch (Exception ex) { MessageBox.Show(ex.Message); } } }
/// <summary> /// Constructor /// 傳入一個課程。 /// </summary> /// <param name="course"></param> public CourseScoreInputForm(CourseRecord course) { InitializeComponent(); prlp = new PermRecLogProcess(); _course = course; #region 設定小標題 TeacherRecord first = course.GetFirstTeacher(); TeacherRecord second = course.GetSecondTeacher(); TeacherRecord third = course.GetThirdTeacher(); StringBuilder builder = new StringBuilder(""); if (first != null) { builder.Append(first.Name + ","); } if (second != null) { builder.Append(second.Name + ","); } if (third != null) { builder.Append(third.Name + ","); } string teachers = builder.ToString(); if (!string.IsNullOrEmpty(teachers)) { teachers = teachers.Substring(0, teachers.Length - 1); } lblCourseName.Text = course.Name + (!string.IsNullOrEmpty(teachers) ? " (" + teachers + ")" : ""); #endregion #region 取得努力程度對照表 K12.Data.Configuration.ConfigData cd = K12.Data.School.Configuration["努力程度對照表"]; if (!string.IsNullOrEmpty(cd["xml"])) { XmlElement element = XmlHelper.LoadXml(cd["xml"]); foreach (XmlElement each in element.SelectNodes("Effort")) { int code = int.Parse(each.GetAttribute("Code")); decimal score; if (!decimal.TryParse(each.GetAttribute("Score"), out score)) { score = 0; } if (!_effortList.ContainsKey(score)) { _effortList.Add(score, code); } } _scoreList = new List <decimal>(); _scoreList.AddRange(_effortList.Keys); _scoreList.Sort(delegate(decimal a, decimal b) { return(b.CompareTo(a)); }); } #endregion #region 取得文字評量代碼表 cd = K12.Data.School.Configuration["文字描述代碼表"]; if (!string.IsNullOrEmpty(cd["xml"])) { XmlHelper helper = new XmlHelper(XmlHelper.LoadXml(cd["xml"])); foreach (XmlElement item in helper.GetElements("Item")) { string code = item.GetAttribute("Code"); string content = item.GetAttribute("Content"); if (!_textMapping.ContainsKey(code)) { _textMapping.Add(code, content); } } } #endregion }
private static void UpdateCourseRecordFromModel(CourseRecord target, CourseRecordModel source) { target.StudentId = source.StudentId; target.CourseId = source.CourseId; target.Score = source.Score; }
public async Task <int> DeleteCourseRecordAsync(CourseRecord record) { _dataSource.CourseRecords.Remove(record); return(await _dataSource.SaveChangesAsync()); }