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
}