private List <SHSubjectYearScoreInfo> GetPersonalYearSubjectScoreInfo(List <SHSubjectSemesterScoreInfo> pSHSubjectSemesterScoreInfo) { List <SHSubjectYearScoreInfo> _SHSubjectYearScoreInfo = new List <SHSubjectYearScoreInfo>(); int i = -1; do { i++; SHSubjectSemesterScoreInfo _SHSubjectSemesterScoreInfo; if ((pSHSubjectSemesterScoreInfo.Count <= i)) { break; } _SHSubjectSemesterScoreInfo = pSHSubjectSemesterScoreInfo[i]; string keySingleSubject = _SHSubjectSemesterScoreInfo.StudentID + "_" + _SHSubjectSemesterScoreInfo.SchoolYear.ToString() + "_" + _SHSubjectSemesterScoreInfo.SubjectName; SHSubjectYearScoreInfo pSHSubjectYearScoreInfo = this.GetPersonalSubjectYearScoreInfo(_SHSubjectSemesterScoreInfo.StudentID, _SHSubjectSemesterScoreInfo.SchoolYear, _SHSubjectSemesterScoreInfo.SubjectName, _SHSubjectSemesterScoreInfo.GradeYear); if (pSHSubjectYearScoreInfo == null) { pSHSubjectYearScoreInfo = new SHSubjectYearScoreInfo(); pSHSubjectYearScoreInfo.StudentID = _SHSubjectSemesterScoreInfo.StudentID; pSHSubjectYearScoreInfo.SchoolYear = _SHSubjectSemesterScoreInfo.SchoolYear; pSHSubjectYearScoreInfo.SubjectName = _SHSubjectSemesterScoreInfo.SubjectName; //pSHSubjectYearScoreInfo.Score = _SHSubjectSemesterScoreInfo //pSHSubjectYearScoreInfo.Credit = _SHSubjectSemesterScoreInfo.StudentID; pSHSubjectYearScoreInfo.GradeYear = _SHSubjectSemesterScoreInfo.GradeYear; pSHSubjectYearScoreInfo.Hour = (_SHSubjectSemesterScoreInfo.Credit.HasValue ? _SHSubjectSemesterScoreInfo.Credit.Value + "" : string.Empty); } else { pSHSubjectYearScoreInfo.AccumulatedCredit = 0; decimal?creditSemester = 0; pSHSubjectYearScoreInfo.AccumulatedCredit += (_SHSubjectSemesterScoreInfo.Credit.HasValue ? _SHSubjectSemesterScoreInfo.Credit.Value : 0); if (_SHSubjectSemesterScoreInfo.Pass.HasValue) { if (_SHSubjectSemesterScoreInfo.Pass.Value) { creditSemester = (_SHSubjectSemesterScoreInfo.Credit.HasValue ? _SHSubjectSemesterScoreInfo.Credit.Value : 0); } } pSHSubjectYearScoreInfo.Credit = creditSemester; pSHSubjectYearScoreInfo.Hour = (_SHSubjectSemesterScoreInfo.Credit.HasValue ? _SHSubjectSemesterScoreInfo.Credit.Value + "" : string.Empty); } _SHSubjectYearScoreInfo.Add(pSHSubjectYearScoreInfo); }while (true); return(_SHSubjectYearScoreInfo); }
private List<SHSubjectYearScoreInfo> GetPersonalYearSubjectScoreInfo(List<SHSubjectSemesterScoreInfo> pSHSubjectSemesterScoreInfo) { List<SHSubjectYearScoreInfo> _SHSubjectYearScoreInfo = new List<SHSubjectYearScoreInfo>(); int i = -1; do { i++; SHSubjectSemesterScoreInfo _SHSubjectSemesterScoreInfo; if ((pSHSubjectSemesterScoreInfo.Count <= i)) break; _SHSubjectSemesterScoreInfo = pSHSubjectSemesterScoreInfo[i]; string keySingleSubject = _SHSubjectSemesterScoreInfo.StudentID + "_" + _SHSubjectSemesterScoreInfo.SchoolYear.ToString() + "_" + _SHSubjectSemesterScoreInfo.SubjectName; SHSubjectYearScoreInfo pSHSubjectYearScoreInfo = this.GetPersonalSubjectYearScoreInfo(_SHSubjectSemesterScoreInfo.StudentID, _SHSubjectSemesterScoreInfo.SchoolYear, _SHSubjectSemesterScoreInfo.SubjectName, _SHSubjectSemesterScoreInfo.GradeYear); if (pSHSubjectYearScoreInfo == null) { pSHSubjectYearScoreInfo = new SHSubjectYearScoreInfo(); pSHSubjectYearScoreInfo.StudentID = _SHSubjectSemesterScoreInfo.StudentID; pSHSubjectYearScoreInfo.SchoolYear = _SHSubjectSemesterScoreInfo.SchoolYear; pSHSubjectYearScoreInfo.SubjectName = _SHSubjectSemesterScoreInfo.SubjectName; //pSHSubjectYearScoreInfo.Score = _SHSubjectSemesterScoreInfo //pSHSubjectYearScoreInfo.Credit = _SHSubjectSemesterScoreInfo.StudentID; pSHSubjectYearScoreInfo.GradeYear = _SHSubjectSemesterScoreInfo.GradeYear; pSHSubjectYearScoreInfo.Hour = (_SHSubjectSemesterScoreInfo.Credit.HasValue ? _SHSubjectSemesterScoreInfo.Credit.Value + "" : string.Empty); } else { pSHSubjectYearScoreInfo.AccumulatedCredit = 0; decimal? creditSemester = 0; pSHSubjectYearScoreInfo.AccumulatedCredit += (_SHSubjectSemesterScoreInfo.Credit.HasValue ? _SHSubjectSemesterScoreInfo.Credit.Value : 0); if (_SHSubjectSemesterScoreInfo.Pass.HasValue) if (_SHSubjectSemesterScoreInfo.Pass.Value) creditSemester = (_SHSubjectSemesterScoreInfo.Credit.HasValue ? _SHSubjectSemesterScoreInfo.Credit.Value : 0); pSHSubjectYearScoreInfo.Credit = creditSemester; pSHSubjectYearScoreInfo.Hour = (_SHSubjectSemesterScoreInfo.Credit.HasValue ? _SHSubjectSemesterScoreInfo.Credit.Value + "" : string.Empty); } _SHSubjectYearScoreInfo.Add(pSHSubjectYearScoreInfo); } while (true); return _SHSubjectYearScoreInfo; }
/// <summary> /// 由個人學期科目成績資訊取得個人學年科目成績資訊 /// </summary> /// <param name="pSHSubject1stSemesterScoreInfo">個人上學期科目成績資訊</param> /// <param name="pSHSubject2ndSemesterScoreInfo">個人下學期科目成績資訊</param> /// <returns>個人學年科目成績資訊</returns> public List<SHSubjectYearScoreInfo> GetPersonalYearSubjectScoreInfo(Dictionary<int, List<SHSubjectSemesterScoreInfo>> dicSHSubjectSemesterScoreInfos) { List<SHSubjectSemesterScoreInfo> pSHSubject1stSemesterScoreInfo = new List<SHSubjectSemesterScoreInfo>(); List<SHSubjectSemesterScoreInfo> pSHSubject2ndSemesterScoreInfo = new List<SHSubjectSemesterScoreInfo>(); if (dicSHSubjectSemesterScoreInfos.ContainsKey(1)) pSHSubject1stSemesterScoreInfo = dicSHSubjectSemesterScoreInfos[1]; if (dicSHSubjectSemesterScoreInfos.ContainsKey(2)) pSHSubject2ndSemesterScoreInfo = dicSHSubjectSemesterScoreInfos[2]; if (pSHSubject1stSemesterScoreInfo.Count == 0 && pSHSubject2ndSemesterScoreInfo.Count == 0) return null; if (pSHSubject1stSemesterScoreInfo.Count == 0 && pSHSubject2ndSemesterScoreInfo.Count > 0) return this.GetPersonalYearSubjectScoreInfo(pSHSubject2ndSemesterScoreInfo); if (pSHSubject2ndSemesterScoreInfo.Count == 0 && pSHSubject1stSemesterScoreInfo.Count > 0) return this.GetPersonalYearSubjectScoreInfo(pSHSubject1stSemesterScoreInfo); List<SHSubjectYearScoreInfo> _SHSubjectYearScoreInfo = new List<SHSubjectYearScoreInfo>(); int i = -1; do { i++; SHSubjectSemesterScoreInfo _SHSubjectSemesterScoreInfo; if ((pSHSubject1stSemesterScoreInfo.Count <= i) && (pSHSubject2ndSemesterScoreInfo.Count <= i)) break; //if (pSHSubject1stSemesterScoreInfo.Count > i) // _SHSubjectSemesterScoreInfo = pSHSubject1stSemesterScoreInfo[i]; //else // _SHSubjectSemesterScoreInfo = pSHSubject2ndSemesterScoreInfo[i]; if (pSHSubject2ndSemesterScoreInfo.Count > i) _SHSubjectSemesterScoreInfo = pSHSubject2ndSemesterScoreInfo[i]; else _SHSubjectSemesterScoreInfo = pSHSubject1stSemesterScoreInfo[i]; string keySingleSubject = _SHSubjectSemesterScoreInfo.StudentID + "_" + _SHSubjectSemesterScoreInfo.SchoolYear.ToString() + "_" + _SHSubjectSemesterScoreInfo.SubjectName; SHSubjectYearScoreInfo pSHSubjectYearScoreInfo = this.GetPersonalSubjectYearScoreInfo(_SHSubjectSemesterScoreInfo.StudentID, _SHSubjectSemesterScoreInfo.SchoolYear, _SHSubjectSemesterScoreInfo.SubjectName, _SHSubjectSemesterScoreInfo.GradeYear); if (pSHSubjectYearScoreInfo == null) { if (pSHSubject1stSemesterScoreInfo.Count > i) pSHSubjectYearScoreInfo = this.GetPersonalSubjectYearScoreInfo(pSHSubject1stSemesterScoreInfo[i].StudentID, pSHSubject1stSemesterScoreInfo[i].SchoolYear, pSHSubject1stSemesterScoreInfo[i].SubjectName, pSHSubject1stSemesterScoreInfo[i].GradeYear); if (pSHSubjectYearScoreInfo == null) { if (pSHSubject1stSemesterScoreInfo.Count > i && pSHSubject2ndSemesterScoreInfo.Count > i) pSHSubjectYearScoreInfo = this.GetPersonalSubjectYearScoreInfo(pSHSubject1stSemesterScoreInfo[i].StudentID, pSHSubject2ndSemesterScoreInfo[i].SchoolYear, pSHSubject1stSemesterScoreInfo[i].SubjectName, pSHSubject1stSemesterScoreInfo[i].GradeYear); if (pSHSubjectYearScoreInfo == null) { pSHSubjectYearScoreInfo = new SHSubjectYearScoreInfo(); pSHSubjectYearScoreInfo.StudentID = _SHSubjectSemesterScoreInfo.StudentID; pSHSubjectYearScoreInfo.SchoolYear = _SHSubjectSemesterScoreInfo.SchoolYear; pSHSubjectYearScoreInfo.SubjectName = _SHSubjectSemesterScoreInfo.SubjectName; //pSHSubjectYearScoreInfo.Score = _SHSubjectSemesterScoreInfo.Score; //pSHSubjectYearScoreInfo.Credit = _SHSubjectSemesterScoreInfo.StudentID; pSHSubjectYearScoreInfo.GradeYear = _SHSubjectSemesterScoreInfo.GradeYear; } } } //else //{ pSHSubjectYearScoreInfo.AccumulatedCredit = 0; decimal? credit1stSemester = 0; decimal? credit2ndSemester = 0; if (pSHSubject1stSemesterScoreInfo.Count > i) { pSHSubjectYearScoreInfo.AccumulatedCredit += (pSHSubject1stSemesterScoreInfo[i].Credit.HasValue ? pSHSubject1stSemesterScoreInfo[i].Credit.Value : 0); if (pSHSubject1stSemesterScoreInfo[i].Pass.HasValue) if (pSHSubject1stSemesterScoreInfo[i].Pass.Value) credit1stSemester = (pSHSubject1stSemesterScoreInfo[i].Credit.HasValue ? pSHSubject1stSemesterScoreInfo[i].Credit.Value : 0); pSHSubjectYearScoreInfo.Hour = (pSHSubject1stSemesterScoreInfo[i].Credit.HasValue ? pSHSubject1stSemesterScoreInfo[i].Credit.Value + "" : string.Empty); } if (pSHSubject2ndSemesterScoreInfo.Count > i) { pSHSubjectYearScoreInfo.AccumulatedCredit += (pSHSubject2ndSemesterScoreInfo[i].Credit.HasValue ? pSHSubject2ndSemesterScoreInfo[i].Credit.Value : 0); if (pSHSubject2ndSemesterScoreInfo[i].Pass.HasValue) if (pSHSubject2ndSemesterScoreInfo[i].Pass.Value) credit2ndSemester = (pSHSubject2ndSemesterScoreInfo[i].Credit.HasValue ? pSHSubject2ndSemesterScoreInfo[i].Credit.Value : 0); decimal hour1st = 0; decimal hour2nd = 0; if (decimal.TryParse(pSHSubjectYearScoreInfo.Hour, out hour1st) && decimal.TryParse(pSHSubject2ndSemesterScoreInfo[i].Credit + "", out hour2nd)) pSHSubjectYearScoreInfo.Hour = (hour1st + hour2nd)/2 + ""; else if (!decimal.TryParse(pSHSubjectYearScoreInfo.Hour, out hour1st) && decimal.TryParse(pSHSubject2ndSemesterScoreInfo[i].Credit + "", out hour2nd)) pSHSubjectYearScoreInfo.Hour = (pSHSubject2ndSemesterScoreInfo[i].Credit.HasValue ? pSHSubject2ndSemesterScoreInfo[i].Credit.Value + "" : string.Empty); } pSHSubjectYearScoreInfo.Credit = credit1stSemester + credit2ndSemester; //} _SHSubjectYearScoreInfo.Add(pSHSubjectYearScoreInfo); } while (true); return _SHSubjectYearScoreInfo; }
/// <summary> /// 由個人學期科目成績資訊取得個人學年科目成績資訊 /// </summary> /// <param name="pSHSubject1stSemesterScoreInfo">個人上學期科目成績資訊</param> /// <param name="pSHSubject2ndSemesterScoreInfo">個人下學期科目成績資訊</param> /// <returns>個人學年科目成績資訊</returns> public List <SHSubjectYearScoreInfo> GetPersonalYearSubjectScoreInfo(Dictionary <int, List <SHSubjectSemesterScoreInfo> > dicSHSubjectSemesterScoreInfos) { List <SHSubjectSemesterScoreInfo> pSHSubject1stSemesterScoreInfo = new List <SHSubjectSemesterScoreInfo>(); List <SHSubjectSemesterScoreInfo> pSHSubject2ndSemesterScoreInfo = new List <SHSubjectSemesterScoreInfo>(); if (dicSHSubjectSemesterScoreInfos.ContainsKey(1)) { pSHSubject1stSemesterScoreInfo = dicSHSubjectSemesterScoreInfos[1]; } if (dicSHSubjectSemesterScoreInfos.ContainsKey(2)) { pSHSubject2ndSemesterScoreInfo = dicSHSubjectSemesterScoreInfos[2]; } if (pSHSubject1stSemesterScoreInfo.Count == 0 && pSHSubject2ndSemesterScoreInfo.Count == 0) { return(null); } if (pSHSubject1stSemesterScoreInfo.Count == 0 && pSHSubject2ndSemesterScoreInfo.Count > 0) { return(this.GetPersonalYearSubjectScoreInfo(pSHSubject2ndSemesterScoreInfo)); } if (pSHSubject2ndSemesterScoreInfo.Count == 0 && pSHSubject1stSemesterScoreInfo.Count > 0) { return(this.GetPersonalYearSubjectScoreInfo(pSHSubject1stSemesterScoreInfo)); } List <SHSubjectYearScoreInfo> _SHSubjectYearScoreInfo = new List <SHSubjectYearScoreInfo>(); int i = -1; do { i++; SHSubjectSemesterScoreInfo _SHSubjectSemesterScoreInfo; if ((pSHSubject1stSemesterScoreInfo.Count <= i) && (pSHSubject2ndSemesterScoreInfo.Count <= i)) { break; } //if (pSHSubject1stSemesterScoreInfo.Count > i) // _SHSubjectSemesterScoreInfo = pSHSubject1stSemesterScoreInfo[i]; //else // _SHSubjectSemesterScoreInfo = pSHSubject2ndSemesterScoreInfo[i]; if (pSHSubject2ndSemesterScoreInfo.Count > i) { _SHSubjectSemesterScoreInfo = pSHSubject2ndSemesterScoreInfo[i]; } else { _SHSubjectSemesterScoreInfo = pSHSubject1stSemesterScoreInfo[i]; } string keySingleSubject = _SHSubjectSemesterScoreInfo.StudentID + "_" + _SHSubjectSemesterScoreInfo.SchoolYear.ToString() + "_" + _SHSubjectSemesterScoreInfo.SubjectName; SHSubjectYearScoreInfo pSHSubjectYearScoreInfo = this.GetPersonalSubjectYearScoreInfo(_SHSubjectSemesterScoreInfo.StudentID, _SHSubjectSemesterScoreInfo.SchoolYear, _SHSubjectSemesterScoreInfo.SubjectName, _SHSubjectSemesterScoreInfo.GradeYear); if (pSHSubjectYearScoreInfo == null) { if (pSHSubject1stSemesterScoreInfo.Count > i) { pSHSubjectYearScoreInfo = this.GetPersonalSubjectYearScoreInfo(pSHSubject1stSemesterScoreInfo[i].StudentID, pSHSubject1stSemesterScoreInfo[i].SchoolYear, pSHSubject1stSemesterScoreInfo[i].SubjectName, pSHSubject1stSemesterScoreInfo[i].GradeYear); } if (pSHSubjectYearScoreInfo == null) { if (pSHSubject1stSemesterScoreInfo.Count > i && pSHSubject2ndSemesterScoreInfo.Count > i) { pSHSubjectYearScoreInfo = this.GetPersonalSubjectYearScoreInfo(pSHSubject1stSemesterScoreInfo[i].StudentID, pSHSubject2ndSemesterScoreInfo[i].SchoolYear, pSHSubject1stSemesterScoreInfo[i].SubjectName, pSHSubject1stSemesterScoreInfo[i].GradeYear); } if (pSHSubjectYearScoreInfo == null) { pSHSubjectYearScoreInfo = new SHSubjectYearScoreInfo(); pSHSubjectYearScoreInfo.StudentID = _SHSubjectSemesterScoreInfo.StudentID; pSHSubjectYearScoreInfo.SchoolYear = _SHSubjectSemesterScoreInfo.SchoolYear; pSHSubjectYearScoreInfo.SubjectName = _SHSubjectSemesterScoreInfo.SubjectName; //pSHSubjectYearScoreInfo.Score = _SHSubjectSemesterScoreInfo.Score; //pSHSubjectYearScoreInfo.Credit = _SHSubjectSemesterScoreInfo.StudentID; pSHSubjectYearScoreInfo.GradeYear = _SHSubjectSemesterScoreInfo.GradeYear; } } } //else //{ pSHSubjectYearScoreInfo.AccumulatedCredit = 0; decimal?credit1stSemester = 0; decimal?credit2ndSemester = 0; if (pSHSubject1stSemesterScoreInfo.Count > i) { pSHSubjectYearScoreInfo.AccumulatedCredit += (pSHSubject1stSemesterScoreInfo[i].Credit.HasValue ? pSHSubject1stSemesterScoreInfo[i].Credit.Value : 0); if (pSHSubject1stSemesterScoreInfo[i].Pass.HasValue) { if (pSHSubject1stSemesterScoreInfo[i].Pass.Value) { credit1stSemester = (pSHSubject1stSemesterScoreInfo[i].Credit.HasValue ? pSHSubject1stSemesterScoreInfo[i].Credit.Value : 0); } } pSHSubjectYearScoreInfo.Hour = (pSHSubject1stSemesterScoreInfo[i].Credit.HasValue ? pSHSubject1stSemesterScoreInfo[i].Credit.Value + "" : string.Empty); } if (pSHSubject2ndSemesterScoreInfo.Count > i) { pSHSubjectYearScoreInfo.AccumulatedCredit += (pSHSubject2ndSemesterScoreInfo[i].Credit.HasValue ? pSHSubject2ndSemesterScoreInfo[i].Credit.Value : 0); if (pSHSubject2ndSemesterScoreInfo[i].Pass.HasValue) { if (pSHSubject2ndSemesterScoreInfo[i].Pass.Value) { credit2ndSemester = (pSHSubject2ndSemesterScoreInfo[i].Credit.HasValue ? pSHSubject2ndSemesterScoreInfo[i].Credit.Value : 0); } } decimal hour1st = 0; decimal hour2nd = 0; if (decimal.TryParse(pSHSubjectYearScoreInfo.Hour, out hour1st) && decimal.TryParse(pSHSubject2ndSemesterScoreInfo[i].Credit + "", out hour2nd)) { pSHSubjectYearScoreInfo.Hour = (hour1st + hour2nd) / 2 + ""; } else if (!decimal.TryParse(pSHSubjectYearScoreInfo.Hour, out hour1st) && decimal.TryParse(pSHSubject2ndSemesterScoreInfo[i].Credit + "", out hour2nd)) { pSHSubjectYearScoreInfo.Hour = (pSHSubject2ndSemesterScoreInfo[i].Credit.HasValue ? pSHSubject2ndSemesterScoreInfo[i].Credit.Value + "" : string.Empty); } } pSHSubjectYearScoreInfo.Credit = credit1stSemester + credit2ndSemester; //} _SHSubjectYearScoreInfo.Add(pSHSubjectYearScoreInfo); }while (true); return(_SHSubjectYearScoreInfo); }