using DocumentFormat.OpenXml.Spreadsheet;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TEAMModelOS.SDK.Models.Cosmos.School
{
///
/// 成績計算總覽
///
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; }
}
///
/// 成績計算總覽分項-活動基底Class
///
public class ScoreCalcActivityBase : CosmosEntity
{
public ScoreCalcActivityBase()
{
pk = "ScoreCalcAct";
itemRates = 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; }
///
/// 各活動權重類型 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()
{
items = new List();
stuActScores = new List>();
stuActScoresOrg = new List>();
}
///
/// 被選取的活動列表
///
public List items { get; set; }
///
/// 各活動所屬學生成績
///
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; }
///
/// 總加權數
///
///
/// 被選取的課堂紀錄列表
///
public List items { 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; }
}
///
/// 測驗、作業
///
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; }
}
///
/// 老師成績計算公式 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
{
///
/// 評量id
///
public string examId { get; set; }
///
/// 評量名稱
///
public string name { get; set; }
///
/// 評量學生Id列表
///
public List studentIds { get; set; }
///
/// 評量分數列表
///
public List sum { 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; }
}
#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 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; }
}
///
/// 統計出席狀態
/// 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 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; }
}
#endregion
#endregion
}