using System.Collections.Generic; namespace TEAMModelOS.SDK.Models.Cosmos { /// /// 成績計算總覽 /// public class ScoreCalcBase : CosmosEntity { public ScoreCalcBase() { pk = "ScoreCalc"; members = new List(); //scores = new List(); //scoresOrg = new List(); editScores = new List(); } /// /// 名稱 /// public string name { get; set; } /// /// 課程ID /// public string courseId { get; set; } /// /// 班級ID(行政班) /// public string classId { get; set; } /// /// 班級ID(選課班、個人課程ID) /// public string grouplistId { get; set; } /// /// 成員名單 /// public List members { get; set; } /// /// 各成員成績總覽 /// //public List scores { get; set; } /// /// 各成員成績總覽最初系統計算結果 /// //public List scoresOrg { get; set; } /// /// 各學生最後成績的加減分 /// public List editScores { get; set; } /// /// 總覽分項權重類型 count:加權 | percentage:百分比 /// public string rateType { get; set; } /// /// 排序 /// public int sort { get; set; } /// /// 學年 /// public int year { get; set; } /// /// 創建時間 (milliseconds 13位數) /// public long createTime { get; set; } } /// /// 成績計算總覽分項-活動基底Class /// public class ScoreCalcActivityBase : CosmosEntity { public ScoreCalcActivityBase() { pk = "ScoreCalcAct"; itemRates = new List(); items = new List(); //itemScores = new List(); //itemScoresOrg = new List(); //stuScores = new List(); } /// /// 成績計算ID /// public string scorecalcId { get; set; } /// /// 活動名稱 /// public string name { get; set; } /// /// 類型 exam:評量 | homework:作業 | lessonrecord:課堂紀錄 /// public string type { get; set; } /// /// 總加權數 /// public double rate { get; set; } /// /// 個學生最後成績的加減分 /// public List editScores { get; set; } /// /// 各活動權重 /// public List itemRates { get; set; } /// /// 排序 /// public int sort { get; set; } /// /// 子項目資料 /// public List items { get; set; } /// /// 各活動權重類型 count:加權 | percentage:百分比 /// //public string itemRateType { get; set; } /// /// 各活動分數最終結果 - 一門課全部學生的平均 - 編輯後 /// //public List itemScores { get; set; } /// /// 各活動分數最初系統計算結果 - 一門課全部學生的平均 - 原始 /// //public List itemScoresOrg { get; set; } /// /// 最終成績 - 一個項目總平均 - 編輯後 /// //public double score { get; set; } /// /// 最終成績系統計算結果 - 一個項目總平均 - 原始 /// //public double scoreOrg { get; set; } /// /// 各學生所有活動結算成績 - 此項目所有學生的計算後分數 /// //public List stuScores { get; set; } } /// /// 成績計算總覽分項-評量、作業 /// public class ScoreCalcActivity : ScoreCalcActivityBase { public ScoreCalcActivity() { stuActScores = new List>(); stuActScoresOrg = new List>(); } /// /// 各活動所屬學生成績 /// public List> stuActScores { get; set; } /// /// 各活動所屬學生成績最初系統計算結果 /// public List> stuActScoresOrg { get; set; } } /// /// 成績計算總覽分項-課堂紀錄 /// public class ScoreCalcLsRecord : ScoreCalcActivityBase { public ScoreCalcLsRecord() { items = new List(); stuActAttendOrgVals = new List>(); stuActAttendScores = new List>(); //stuAttendScores = new List(); stuActPointOrgVals = new List>(); stuActPointScores = new List>(); //stuPointScores = new List(); stuActItactOrgVals = new List>(); stuActItactScores = new List>(); //stuItactScores = new List(); } /// /// 出席加權數 /// public double attendRate { get; set; } /// /// 記分板加權數 /// public double pointRate { get; set; } /// /// 互動加權數 /// public double itactRate { get; set; } #region ==========出席========== /// /// 課堂紀錄出席 採用的公式ID (依照items順序 第一個課堂紀錄公式 第二個...) /// public string stuAttendFunctionId { get; set; } /// /// 各學生各課堂紀錄出席 系統原值 /// public List> stuActAttendOrgVals { get; set; } /// /// 各學生各課堂紀錄出席 分數 /// public List> stuActAttendScores { get; set; } /// /// 各學生所有課堂紀錄出席 分數 /// //public List stuAttendScores { get; set; } #endregion #region ==========記分板========== /// /// 課堂紀錄記分板 採用的公式ID /// public string stuPointFunctionId { get; set; } /// /// 各學生各課堂紀錄記分板 系統原值 /// public List> stuActPointOrgVals { get; set; } /// /// 各學生各課堂紀錄記分板 分數 /// public List> stuActPointScores { get; set; } /// /// 各學生所有課堂紀錄記分板 分數 /// //public List stuPointScores { get; set; } #endregion #region ==========互動========== /// /// 課堂紀錄互動 採用的公式ID /// public string stuItactFunctionId { get; set; } /// /// 各學生各課堂紀錄互動 系統原值 /// public List> stuActItactOrgVals { get; set; } /// /// 各學生各課堂紀錄互動 分數 /// public List> stuActItactScores { get; set; } /// /// 各學生所有課堂紀錄互動 分數 /// //public List stuItactScores { get; set; } #endregion } public class ScoreCalcMember { /// /// ID(學生ID、TMID) /// public string id { get; set; } public string name { get; set; } /// /// 座號 /// public string no { get; set; } /// /// IRS號碼 /// public string irs { get; set; } } /// /// 測驗、作業 /// public class ScoreCalcActivityItems { /// /// 活動ID (測驗:examId 作業:homeworkId) /// public string id { get; set; } /// /// 活動分區鍵 /// public string code { get; set; } /// /// 發布對象 學校(school)/個人(private) /// //public string scope { get; set; } /// /// (評量專有)擁有者 學校(school)/個人(teacher) /// //public string owner { get; set; } /// /// 活動名稱 /// public string name { get; set; } /// /// 活動進度 pending 待发布 | going 已发布 | finish 已结束 /// //public string progress { get; set; } /// /// 活動評分狀態(評量專用) 0未评分,1已评分 /// //public int sStatus { get; set; } = 0; /// /// 評測類型(評量專用) 0:線上評量 | 1:課中評量 | 2.卷卡合一 /// //public string source { get; set; } /// /// 創建時間 (milliseconds 13位數) /// public long createTime { get; set; } /// /// 是否使用(是否被勾選) true:使用 /// public bool use { get; set; } /// /// 排序 /// public int sort { get; set; } /// /// 是否為自訂子項目 /// public bool custom { get; set; } } /// /// 老師成績計算公式 code:"ScoreCalcFunc-{TMID}" /// public class ScoreCalcFunc : CosmosEntity { public ScoreCalcFunc() { pk = "ScoreCalcActFormula"; keyvals = new List(); } public string name { get; set; } public string scorecalcActId { get; set; } /// /// 類型 exam:評量 | homework:作業 | lessonrecord:課堂紀錄 /// public string type { get; set; } /// /// 種類 attend:出席 | point:得分版 | interaction:互動 /// public string method { get; set; } /// /// 模板 simpleAttend: 簡單出席計算法 | attendRate:出席率計算法 | custom:自訂 /// public string template { get; set; } /// /// 公式鍵值定義 /// public List keyvals { get; set; } /// /// 公式內容 /// public string content { get; set; } } public class ScoreCalcFuncTemplateKeyval { public string key { get; set; } public string val { get; set; } //public string type { get; set; } //public string describe { get; set; } } /// /// 評量活動取系統資料 /// public class ExamItem { public ExamItem() { point = new List(); subjects = new List(); } /// /// 評量id /// public string examId { get; set; } /// /// 評量名稱 /// public string name { get; set; } /// /// 評量學生Id列表 /// public List studentIds { get; set; } /// /// 評量分數列表 /// public List sum { get; set; } /// /// 開始時間 /// public long startTime { get; set; } /// /// 每題的滿分分數 /// public List point { get; set; } /// /// 科目Id /// public List subjects { get; set; } } /// /// 取作業活動Id /// public class HomeworkItem { /// /// 作業id /// public string id { get; set; } /// /// 作業名稱 /// public string name { get; set; } /// /// 作業代碼 包含學生座號 /// public string code { get; set; } /// /// 分數 /// public double score { get; set; } /// /// pk /// public string pk { get; set; } /// /// school id /// public string school { get; set; } /// /// 開始時間 /// public long startTime { get; set; } } #region (四)更新成績統計首頁表資料用 /// /// 更新成績統計首頁表資料 參數 /// public class UpdateSscoreCalcRq { public UpdateSscoreCalcRq() { ScoreCalcAct = new List(); editScores = new List(); } /// /// 成績統計id /// public string id { get; set; } /// /// teammodelId /// public string teammodelId { get; set; } /// /// 成績統計名稱 /// public string name { get; set; } /// /// 成績統計名稱 /// public List ScoreCalcAct { get; set; } /// /// 成績統計的加減分 /// public List editScores { get; set; } } /// /// 更新成績統計首頁表資料 參數ScoreCalcAct /// public class ScoreCalcAct { public ScoreCalcAct() { editScores = new List(); } /// /// 項目id /// public string id { get; set; } /// /// 項目類別 /// public string type { get; set; } /// /// 出席比重 /// public double attendRate { get; set; } /// /// 記分比重 /// public double pointRate { get; set; } /// /// 互動比重 /// public double itactRate { get; set; } /// /// 總比重 /// public double rate { get; set; } /// /// 項目成績的加減分 /// public List editScores { get; set; } } #endregion // 取物件Id用 public class ItemId { /// /// id /// public string id { get; set; } } #region (六)更新公式設定(一次可以處理多個公式)資料用 /// /// 更新公式資料 參數 /// public class UpdateFormulaRq { public UpdateFormulaRq() { scoreCalcFunc = new List(); } /// /// 項目id /// public string scoreCalcActId { get; set; } /// /// teammodelId /// public string teammodelId { get; set; } /// /// 種類 attend:出席 | point:得分版 | interaction:互動 /// public string method { get; set; } /// /// 公式資料列表 /// public List scoreCalcFunc { get; set; } } /// /// 更新公式資料用的 細項參數 /// public class ScoreCalcFuncRq : ScoreCalcFunc { /// /// 是否為使用中的公式 /// public bool use { get; set; } } #endregion #region (九)更新項目及子項目資料 /// /// Request 參數 /// public class UpdateScoreCalcActRqBase { /// /// 活動id /// public string scoreCalcActId { get; set; } /// /// 活動名稱 /// public string name { get; set; } /// /// 活動加權數 /// public double rate { get; set; } } public class UpdateActivityActRq : UpdateScoreCalcActRqBase { public UpdateActivityActRq() { items = new List(); } /// /// 活動子項目資料列表 /// public List items { get; set; } } public class UpdateLsRecordActRq : UpdateScoreCalcActRqBase { public UpdateLsRecordActRq() { items = new List(); } /// /// 子項目資料列表 /// public List items { get; set; } } #endregion #region(十三)匯出原始成績資料 /// /// 原始成績Base /// public class ExportOrgDataBase { /// /// 名稱 /// public string name { get; set; } } /// /// 活動成績大項 /// public class ExportOrgActivityData : ExportOrgDataBase { public ExportOrgActivityData() { data = new List(); } /// /// 活動子項目資料列表 /// public List data { get; set; } } /// /// 課堂成績大項 /// public class ExportOrgLsRecordData : ExportOrgDataBase { public ExportOrgLsRecordData() { data = new List(); } /// /// 課程原始分數資料 /// public List data { get; set; } } /// /// 課堂分數欄位 /// public class LessonScores { /// /// 學生id /// public string id { get; set; } /// /// 名稱 /// public string name { get; set; } /// /// 座號 /// public string no { get; set; } /// /// 出席 /// public double attend { get; set; } /// /// 記分板 /// public double point { get; set; } /// ///互動 /// public double interaction { get; set; } } /// /// 活動分數欄位 /// public class ActivityScores { /// /// 學生id /// public string id { get; set; } /// /// 名稱 /// public string name { get; set; } /// /// 座號 /// public string no { get; set; } /// /// 分數 /// public double score { get; set; } } #endregion #region (十二)登錄指定子項目成績資料用 /// /// 更新成績 參數 /// public class UpdateScoreBase { /// /// 活動項目id /// public string scoreCalcActId { get; set; } /// /// teammodelId /// public string teammodelId { get; set; } /// /// 子項目id /// public string id { get; set; } } /// /// 更新課堂子項目成績 參數 /// public class UpdateScoreLessonRq : UpdateScoreBase { public UpdateScoreLessonRq() { stuActAttendScores = new List(); stuActPointScores = new List(); stuActItactScores = new List(); } /// /// 出席分數 /// public List stuActAttendScores { get; set; } /// /// 記分板分數 /// public List stuActPointScores { get; set; } /// /// 互動分數 /// public List stuActItactScores { get; set; } } /// /// 更新活動子項目成績 參數 /// public class UpdateScoreActivityRq : UpdateScoreBase { public UpdateScoreActivityRq() { scores = new List(); } /// /// 分數 /// public List scores { get; set; } } #endregion #region (十七)查詢項目屬性資料 public class ItemProps { /// /// 項目id /// public string id { get; set; } /// /// 項目名稱 /// public string name { get; set; } /// /// 時間 /// public long startTime { get; set; } /// /// 項目類別 /// public string type { get; set; } } #endregion #region API回傳資料用 #region (二)查詢成績統計首頁表資料用 /// /// 查詢總表-活動資料的Base /// public class ScoreCalcActDtoBase { public ScoreCalcActDtoBase() { editScores = new List(); } /// /// 活動id /// public string id { get; set; } /// /// 活動名稱 /// public string name { get; set; } /// /// 類型 exam:評量 | homework:作業 | lessonrecord:課堂紀錄 /// public string type { get; set; } /// /// 活動加權數 /// public double rate { get; set; } /// /// 排序 /// public int sort { get; set; } /// /// 個學生最後成績的加減分 /// public List editScores { get; set; } } /// /// 查詢總表-活動資料的詳細列表資料 /// public class ScoreCalcActivityActDto : ScoreCalcActDtoBase { public ScoreCalcActivityActDto() { items = new List(); } /// /// 活動子項目資料列表 /// public List items { get; set; } } /// /// 查詢總表-活動資料課堂紀錄的詳細列表資料 /// public class ScoreCalcLsRecordActDto : ScoreCalcActDtoBase { public ScoreCalcLsRecordActDto() { items = new List(); attendStates = new List(); } /// /// 出席占比重 /// public double attendRate { get; set; } /// /// 記分板占比重 /// public double pointRate { get; set; } /// /// 互動占比重 /// public double itactRate { get; set; } /// /// 出席公式 /// public string stuAttendFunctionId { get; set; } /// /// 記分公式 /// public string stuPointFunctionId { get; set; } /// /// 互動公式 /// public string stuItactFunctionId { get; set; } /// /// 出席狀態統計資料 /// public List attendStates { get; set; } /// /// 子項目資料列表 /// public List items { get; set; } /// /// 排序 /// public int sort { get; set; } } /// /// 統計出席狀態 /// Uncall,0(未點名) /// Attended,1(出席) /// Absent,2(缺席) /// DayOff,3(請假) /// Absent_Sick,4(病假) /// Absent_Personal,5(事假) /// Absent_Official,6(公假) /// public class AttendStatesCalc { /// /// 病假次數 /// public int Absent_Sick { get; set; } /// /// 缺席次數 /// public int Absent { get; set; } /// /// 事假次數 /// public int Absent_Personal { get; set; } /// /// 公假次數 /// public int Absent_Official { get; set; } } /// /// 子項目欄位的Base /// public class SubActBase { /// /// 子項目id /// public string id { get; set; } /// /// 子項目名稱 /// public string name { get; set; } /// /// 子項目加權數 /// public double rate { get; set; } /// /// 是否為勾選的項目 /// public bool use { get; set; } /// /// 排序 /// public int sort { get; set; } /// /// 是否為自訂子項目 /// public bool custom { get; set; } /// /// 開始時間 /// public long startTime { get; set; } } /// /// 活動子項目欄位 /// public class SubActActivity : SubActBase { public SubActActivity() { scores = new List(); } public List scores { get; set; } } /// /// 課堂紀錄子項目欄位 /// public class SubActLsRecord : SubActBase { public SubActLsRecord() { stuActAttendScores = new List(); stuActPointScores = new List(); stuActItactScores = new List(); } /// /// 出席分數 /// public List stuActAttendScores { get; set; } /// /// 記分板分數 /// public List stuActPointScores { get; set; } /// /// 互動分數 /// public List stuActItactScores { get; set; } } /// /// 成績統計列表用資料 /// public class Calc { /// /// 成績統計id /// public string id { get; set; } /// /// 成績統計名稱 /// public string name { get; set; } /// /// 排序 /// public int sort { get; set; } /// /// 創建時間 (milliseconds 13位數) /// public long createTime { get; set; } } /// /// 成績統計列表用資料-總評分 /// public class EditScores { public EditScores() { editScores = new List(); } /// /// 總評分 /// public List editScores { get; set; } } #region (十四)更新成績統計順序 (十五)更新活動項目順序 (十六)更新活動子項目順序 /// /// 更新成績統計順序Request /// public class UpdateCalcSortRq { /// /// teammodelId /// public string teammodelId { get; set; } /// /// 成績統計要更新的資料list /// public List sortItems { get; set; } } /// /// 更新活動項目順序Request /// public class UpdateActSortRq { /// /// teammodelId /// public string teammodelId { get; set; } /// /// 成績統計Id /// public string scoreCalcId { get; set; } /// /// 成績統計要更新的資料list /// public List sortItems { get; set; } } /// /// 更新活動子項目順序Request /// public class UpdateActItemSortRq { /// /// teammodelId /// public string teammodelId { get; set; } /// /// 活動項目Id /// public string scoreCalcActId { get; set; } /// /// 子項目要更新的資料list /// public List sortItems { get; set; } } public class sortItem { /// /// 成績統計id /// public string id { get; set; } /// /// 排序 /// public int sort { get; set; } } #endregion #endregion #endregion #region 接課堂紀錄blob資料用類別 public class ScoreClientSummaryList: ClientSummaryList { /// /// 互動總得分 /// public double interactScore { get; set; } } /// /// /{_lessonId}/IES/TimeLine.json 课堂记录基础信息 /// public class ScoreLessonBase { public Summary summary { get; set; } public ScoreReport report { get; set; } public List student { get; set; } } public class ScoreReport { /// /// /// public List quizSummaryList { get; set; } /// /// /// public List clientSummaryList { get; set; } } #endregion }