/// <summary> /// Link other information against this enumerant. /// </summary> /// <param name="ctx"> /// A <see cref="RegistryContext"/> holding the registry information to link. /// </param> internal void Link(RegistryContext ctx) { if (ctx == null) { throw new ArgumentNullException(nameof(ctx)); } RequiredBy.Clear(); RequiredBy.AddRange(GetFeaturesRequiringEnum(ctx)); RemovedBy.Clear(); RemovedBy.AddRange(GetFeaturesRemovingEnum(ctx)); }
/// <summary> /// Link other information against this enumerant. /// </summary> /// <param name="ctx"> /// A <see cref="RegistryContext"/> holding the registry information to link. /// </param> internal void Link(RegistryContext ctx) { if (ctx == null) { throw new ArgumentNullException("ctx"); } RequiredBy.Clear(); RequiredBy.AddRange(GetFeaturesRequiringCommand(ctx)); RemovedBy.Clear(); RemovedBy.AddRange(GetFeaturesRemovingCommand(ctx)); foreach (CommandParameter commandParameter in Parameters) { commandParameter.ParentCommand = this; } }
/// <summary> /// 累計應得學分 /// </summary> /// <param name="pStudentID">學生系統編號</param> /// <param name="pSchoolYear">學年度</param> /// <param name="pSemester">學期</param> /// <param name="pRequired">必/選修</param> /// <param name="pRequiredBy">校/部訂</param> /// <param name="pSubjectType">分項類別(學業、體育、實習科目、國防通識、健康與護理、專業科目),不依據此項目統計時,傳入 null</param> /// <returns>學分數</returns> public decimal GetAccumulatedDeservedCredit(string pStudentID, List<int> pSchoolYear, List<int> pSemester, bool pRequired, RequiredBy pRequiredBy, Entry pEntry) { decimal? credit = 0; foreach(int schoolYear in pSchoolYear) { foreach(int semester in pSemester) { string key = pStudentID + "_" + pSchoolYear.ToString() + "_" + pSemester; foreach (SHSubjectSemesterScoreInfo shsssi in _PersonalSemesterSubjectScoreInfo[key]) { //if (shsssi.NotIncludedInCredit) // continue; if (shsssi.Entry != pEntry.ToString()) continue; if (shsssi.RequiredBy != pRequiredBy.ToString()) continue; if (shsssi.Required != pRequired) continue; credit += ((shsssi.Credit.HasValue) ? shsssi.Credit.Value : 0); } } } return ((credit.HasValue) ? credit.Value : 0); }
/// <summary> /// 累計應得學分 /// </summary> /// <param name="pStudentID">學生系統編號</param> /// <param name="pSchoolYear">學年度</param> /// <param name="pSemester">學期</param> /// <param name="pRequired">必/選修</param> /// <param name="pRequiredBy">校/部訂</param> /// <param name="pSubjectType">分項類別(學業、體育、實習科目、國防通識、健康與護理、專業科目),不依據此項目統計時,傳入 null</param> /// <returns>學分數</returns> public decimal GetAccumulatedDeservedCredit(string pStudentID, List <int> pSchoolYear, List <int> pSemester, bool pRequired, RequiredBy pRequiredBy, Entry pEntry) { decimal?credit = 0; foreach (int schoolYear in pSchoolYear) { foreach (int semester in pSemester) { string key = pStudentID + "_" + pSchoolYear.ToString() + "_" + pSemester; foreach (SHSubjectSemesterScoreInfo shsssi in _PersonalSemesterSubjectScoreInfo[key]) { //if (shsssi.NotIncludedInCredit) // continue; if (shsssi.Entry != pEntry.ToString()) { continue; } if (shsssi.RequiredBy != pRequiredBy.ToString()) { continue; } if (shsssi.Required != pRequired) { continue; } credit += ((shsssi.Credit.HasValue) ? shsssi.Credit.Value : 0); } } } return((credit.HasValue) ? credit.Value : 0); }