using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.IO; using System.Linq; using System.Net.Mail; using System.Runtime.Serialization.Formatters.Binary; using System.Runtime.Serialization; using System.Text; using System.Threading.Tasks; using System.Text.Json; namespace TEAMModelOS.SDK.Models { public class Activity : CosmosEntity { //id 活动id, //code Activity-hbcn/areaId public Activity() { pk="Activity"; } [Required(ErrorMessage = "Required")] public string name { get; set; } [Required(ErrorMessage = "Required")] public string subject { get; set; } public string description { get; set; } public string address { get; set; } [Range(1697622366000, 4102415999000, ErrorMessage = $"时间范围错误")] public long stime { get; set; } [Range(1697622366000, 4102415999000, ErrorMessage = $"时间范围错误")] public long etime { get; set; } public string poster { get; set; } public List attachment { get; set; } = new List(); public List zb { get; set; } = new List(); public List cb { get; set; } = new List(); /// /// 免责声明 /// public string mzsm { get; set; } /// /// "hbcn/区级id,areaId", /// [Required(ErrorMessage = "Required")] public string owner { get; set; } /// /// "所有者名称", /// [Required(ErrorMessage = "Required")] public string ownerName { get; set; } /// /// "public公开/area区级/school校级", public公开活动 只能是醍摩豆智慧学区才能选择, /// [Required(ErrorMessage = "Required")] public string scope { get; set; } /// /// "enroll/报名制,invite/邀请制", /// [Required(ErrorMessage = "Required")] public string joinMode { get; set; } /// /// //区级活动时允许参与的学校,如果为空则全部学校 /// public List invitedSchools { get; set; } = new List(); /// /// 确认的学校 /// public List confirmedSchools { get; set; } = new List(); /// /// //邀请制,允许参加的教师 /// // public List inviteTeachers { get; set; } = new List(); /// /// 模块"Contest/赛课活动", "Training/线上培训", "Research/教研活动" /// [Required(ErrorMessage = "模块不能为空")] [MinLength(1, ErrorMessage = "模块不能为空")] public List modules { get; set; } = new List(); /// /// 所属年份 /// public int year { get; set; } /// /// 创建时间 /// public long createTime { get; set; } /// /// 创建者 /// public string creatorId { get; set; } /// /// 0未发布,1已发布,2.已结束 /// public int publish { get; set; } } public record ActivityUpdate { public string name { get; set; } public string subject { get; set; } public string description { get; set; } public string address { get; set; } public long stime { get; set; } public long etime { get; set; } public string poster { get; set; } public List attachment { get; set; } = new List(); public List zb { get; set; } = new List(); public List cb { get; set; } = new List(); /// /// 免责声明 /// public string mzsm { get; set; } } public class ActivityDto : Activity { public string url { get; set; } public string sas { get; set; } } /// /// Normal 分站 /// public class ActivityWebsite : CosmosEntity { // id(区级id,校级id) //code:ActivityWebsite public ActivityWebsite() { code="ActivityWebsite"; pk="ActivityWebsite"; } /// /// (路由编码),公开的 teammodel ,区级(区级简码),校级(学校编码),不可以修改 /// [Required(ErrorMessage = "不能为空")] public string route { get; set; } /// /// "public公开/area区级/school校级", public公开活动 只能是醍摩豆智慧学区才能选择, /// [Required(ErrorMessage = "Required")] public string scope { get; set; } [Required(ErrorMessage = "name不能为空")] public string name { get; set; } = "教师专业化发展服务平台"; public string logo { get; set; } public List banners { get; set; } = new List(); /// /// 是否允许创建公开的活动 /// public int allowPublic { get; set; } = 0; } public class ActivityWebsiteDto : ActivityWebsite { public string sas { get; set; } public string url { get; set; } public ActivityWebsiteDto() { } public ActivityWebsiteDto(ActivityWebsite website) { this.allowPublic = website.allowPublic; this.route = website.route; this.scope = website.scope; this.name = website.name; this.logo = website.logo; this.pk = website.pk; this.code = website.code; this.banners = website.banners; this.id = website.id; } } public class ActivityBanner { public string title { get; set; } public string subtitle { get; set; } /// /// 指向链接 /// public string url { get; set; } /// /// 图片链接 /// public string blob { get; set; } /// /// 文件类型 video image /// public string fileType { get; set; } /// /// 添加时间 /// public long time { get; set; } /// /// 展示到期时间,-1永不过期 /// public long expire { get; set; } /// /// 来源 activity ,upload, link /// public string source { get; set; } } public class InviteTeachers { public string id { get; set; } public string name { get; set; } public string picture { get; set; } public string school { get; set; } public string schoolName { get; set; } /// /// 0 未报名,1已报名,用于区级发布, publish=1,joinMode=invite,学校可以去进行邀请某一些教师。 /// public int status { get; set; } } /// /// 存放位置 Teacher表 /// public class ActivityTeacher : CosmosEntity { /// /// id 学校id /// code = ActivityTeacher-{activityId} /// public ActivityTeacher() { pk="ActivityTeacher"; } /// /// 活动id /// public string activityId { get; set; } public string schoolName { get; set; } public List inviteTeachers { get; set; } = new List(); } public class ActivityInvitedSchool { public string id { get; set; } public string name { get; set; } public string picture { get; set; } } public class ActivityConfirmedSchool : ActivityInvitedSchool { /// /// 0 未确认,1已确认,用于区级发布, publish=1,joinMode=invite,学校可以去进行邀请某一些教师。 /// public int status { get; set; } //public string areaId { get; set; } //public string areaName { get; set; } } /// /// //赛课模块的数据结构, Common /// public class Contest : CosmosEntity { //id 活动id, public Contest() { code = "Contest"; pk = "Contest"; } /// /// //参加活动获得积分。根据最后评委打分,0-100的比例获得积分,不足一分按一分计算。 /// public int balance { get; set; } = 0; /// /// "sign","upload","review","score"//报名模块,上传作品模块,评审模块,成绩公布模块 /// [Required(ErrorMessage = "优课评选子模块不能为空")] [MinLength(1, ErrorMessage = "优课评选子模块不能为空")] public List modules { get; set; } = new List(); public ContestSign sign { get; set; } public ContestUpload upload { get; set; } public ContestReview review { get; set; } public ContestScore score { get; set; } } public class ContestScore { /// /// 0未展示,1展示 /// public int scoreStatus { get; set; } /// /// 0 分数展示,1等级展示 /// public int showType { get; set; } /// /// 在个人活动页面展示细项得分0不展示。1展示 /// public int showDetail { get; set; } /// /// 0按分数区间,1按人数 /// public int levelType { get; set; } public List scoreLevels { get; set; } = new List(); //取前多少名的数据作为公示,-1表示默认全部 0-n则表示取前n位进行公布,其他不做展示。 public int top { get; set; } = -1; //成绩公布的解释权说明! public string attention { get; set; } public long stime { get; set; } public long etime { get; set; } } public class ScoreLevel { public int order { get; set; } public int top { get; set; } public string lable { get; set; } public double min { get; set; } public double max { get; set; } } public class ContestReview { public long stime { get; set; } public long etime { get; set; } /// /// 0未进入专家评审阶段,1已经进入专家评审阶段。 /// public int reviewStatus { get; set; } /// /// //default 默认,评审规则 /// public string ruleId { get; set; } public string ruleName { get; set; } } /// /// 存在Normal表 /// public class ReviewRule : CosmosEntity { public ReviewRule() { pk="ReviewRule"; } /// /// code="ReviewRule-disposable"; 存为活动 code="ReviewRule-template"; 存为模板 /// //id 为活动的id ,以此用于来推断 模板评审规则或者活动评审规则的来源 [Required(ErrorMessage = "Required")] public string name { get; set; } /// /// "hbcn/区级id,areaId", /// [Required(ErrorMessage = "Required")] public string owner { get; set; } /// /// "public公开/area区级/school校级", public公开活动 只能是醍摩豆智慧学区才能选择, /// //[Required(ErrorMessage = "Required")] //public string scope { get; set; } /// /// template 模板,disposable 一次性的,如果存为模板,则需要再保存一份活动引用的 /// [Required(ErrorMessage = "Required")] public string type { get; set; } public List configs { get; set; } = new List(); /// /// 模板来源 name /// public string sourceName { get; set; } public string desc { get; set; } /// /// 一个作品需要被评审多少次,作品被分配给多少个专家评审 /// public int taskCount { get; set; } /// /// 统分规则 /// only 分配一次的情况直接获取分数=1 /// avg 按平均分,>=2 /// top 按最高分,>=2 /// rmLowAvg 去掉最低分的平均分(分配次数至少3次)>=3 /// rmTopAvg 去掉最高分的平均分(分配次数至少3次),>=3 /// rmLowTopAvg 去掉最高分和最低分的平均分(分配次数至少4次)>=4 /// public string scoreRule { get; set; } /// /// 作品分配匹配规则(专家的 学段,学科是否与报名教师填写的学段学科匹配) /// none 不需要匹配, /// period 只匹配学段, /// subject 只匹配学科,不分学段, /// periodAndSubject同时匹配学科和学段 /// public string distribute { get; set; } /// /// 是否需要进行细项评分0,不需要对细项评分 1 需要对细项评分,细项评分自动计为总分。 /// public int scoreDetail { get; set; } = 0; } public class ContestTime { public long? scoreStime { get; set; } = -1; public long? scoreEtime { get; set; } = -1; public long? signStime { get; set; } = -1; public long? signEtime { get; set; } = -1; public long? uploadStime { get; set; } = -1; public long? uploadEtime { get; set; } = -1; public long? reviewStime { get; set; } = -1; public long? reviewEtime { get; set; } = -1; } public class RuleConfig { public string id { get; set; } public string pid { get; set; } public string label { get; set; } public string desc { get; set; } public double score { get; set; } public int order { get; set; } public List cids { get; set; } = new List(); } public class ReviewRuleTree { public string id { get; set; } [Required(ErrorMessage = "Required")] public string name { get; set; } /// /// "hbcn/区级id,areaId", /// [Required(ErrorMessage = "Required")] public string owner { get; set; } public string desc { get; set; } /// /// 是否将规则更新或保存为模板 /// public int upsertAsTemplate { get; set; } = 0; public string sourceName { get; set; } public List trees { get; set; } /// /// 一个作品需要被评审多少次,作品被分配给多少个专家评审 /// public int taskCount { get; set; } /// /// 统分规则 /// only 分配一次的情况直接获取分数=1 /// avg 按平均分,>=2 /// top 按最高分,>=2 /// rmLowAvg 去掉最低分的平均分(分配次数至少3次)>=3 /// rmTopAvg 去掉最高分的平均分(分配次数至少3次),>=3 /// rmLowTopAvg 去掉最高分和最低分的平均分(分配次数至少4次)>=4 /// public string scoreRule { get; set; } /// /// 作品分配匹配规则(专家的 学段,学科是否与报名教师填写的学段学科匹配) /// none 不需要匹配, /// period 只匹配学段, /// subject 只匹配学科,不分学段, /// periodAndSubject同时匹配学科和学段 /// public string distribute { get; set; } /// /// 是否需要进行细项评分0,不需要对细项评分 1 需要对细项评分,细项评分自动计为总分。 /// public int scoreDetail { get; set; } } public class RuleConfigTree : RuleConfig { public List children { get; set; } = new List(); } //public class ContestUpdate { // public long signStime { get; set; } // public long signEtime { get; set; } // /// // /// //报名人数限制 // /// // public int limit { get; set; } // public long uploadStime { get; set; } // public long uploadEtime { get; set; } // public string desc { get; set; } // /// // /// ["file"], 提交作品的格式 // /// // public List fileType { get; set; } = new List(); // public long reviewStime { get; set; } // public long reviewEtime { get; set; } // public long scoreStime { get; set; } // public long scoreEtime { get; set; } //} public class ContestUpload { public long stime { get; set; } public long etime { get; set; } /// /// file sokrates /// public string type { get; set; } public HashSet uploadType { get; set; }= new HashSet(); /// /// 必须上传的类型 /// public HashSet uploadTypeNecessary { get; set; } = new HashSet(); /// /// 上传类型数量限制0 不限制。1 限制任意一种, 当uploadType.count==limit,则表示 所有类型都需要上传。 即 当uploadType[ file,sokrates,lesson],limit==3 则所有类型均要上传。 /// public int limit { get; set; } /// /// ["file"], 提交作品的格式 /// public List fileType { get; set; } = new List(); /// /// 是否由队长上传 0个人上传,1 队长上传 /// public int captainUpload { get; set; } public string desc { get; set; } } public class ContestSign { //public List field { get; set; } = new List(); /// /// 报名类型,0个人,1团队 /// public int type { get; set; } public long stime { get; set; } public long etime { get; set; } /// /// //报名人数限制 /// public int limit { get; set; } /// /// 表单 /// public List fields { get; set; } = new List(); } public class ContestSignField { /// /// "name", "phone", "period", "subject", "school", "contestType", "job" /// public string field { get; set; } public string label { get; set; } /// /// text select radio checkbox password file textarea /// public string type { get; set; } /// /// 单选,复选,下拉列表 /// public List item { get; set; } = new List(); } /// /// 本次活动的评审专家 /// public class ActivityExpert : CosmosEntity { /// ///id 活动id /// public ActivityExpert() { pk="ActivityExpert"; code="ActivityExpert"; } public List experts { get; set; } = new List(); } public class Expert { public string id { get; set; } public string iname { get; set; } public string name { get; set; } public string mobile { get; set; } public string email { get; set; } public string tmdid { get; set; } public string picture { get; set; } public string school { get; set; } /// /// 0 未确认,1 已确认 确认状态 /// public int status { get; set; } /// /// 职称 /// public string title { get; set; } /// /// 科目 /// public List subjects { get; set; } = new List(); /// /// 评审专家可以对哪些模块进行评审,["Contest"] /// public List modules { get; set; } = new List(); } public class ExpertPeriodSubjectDto { public string expertTmdname { get; set; } public string expertPicture { get; set; } public string expertName { get; set; } public string expertId { get; set; } public IEnumerable periodSubjects { get; set; } = new List(); } public class ExpertSubject { /// /// 科目 /// public string subject { get; set; } /// /// 学段 /// public string period { get; set; } } public class TeacherActivityDto : ActivityDto { /// /// 0未报名,1已报名 /// public int contestSign { get; set; } = 0; /// /// 参赛模式 0 个人,1 团队(是否允许跨校) /// public int contestType { get; set; } /// /// 报名时间 /// public long signTime { get; set; } = -1; /// /// 0未提交,1 已提交 /// public int contestUpload { get; set; } public string uploadType { get; set; } public HashSet uploadTypes { get; set; } = new HashSet(); public long uploadTime { get; set; } = -1; } /// /// 教师报名数据,存放在Teacher /// public class ActivityEnroll : CosmosEntity { //id 教师id, //code ActivityEnroll-ActivityId //pk ActivityEnroll public string schoolId { get; set; } public string schoolName { get; set; } public string tmdName { get; set; } public string tmdPicture { get; set; } public string schoolPicture { get; set; } public EnrollContest contest { get; set; } public EnrollUpload upload { get; set; } public string activityId { get; set; } } public class ActivityTeacherUploadData { public string name { get; set; } public string tmdid { get; set; } public string nickname { get; set; } public string picture { get; set; } public string school { get; set; } public string schoolName { get; set; } public string schoolPicture { get; set; } public List members { get; set; } = new List(); public string cipher { get; set; } public string teamName { get; set; } /// /// 参赛模式 0 个人,1 团队 /// public int type { get; set; } public string uploadId { get; set; } public string uploadName { get; set; } } public class ActivityTeacherScore : ActivityTeacherUploadData { public double score { get; set; } } public class ActivityScoreLevel { public string lable { get; set; } public List scores { get; set; }= new List(); } public class ActivityTeacherScoreLevel : ActivityTeacherUploadData { public string scoreLevel { get; set; } public double score { get; set; } } public class ActivityTeacherScoreMask : ActivityTeacherScore { public double maskScore { get; set; } public double showScore { get; set; } } public class EnrollContest { /// /// 报名时间 /// public long enrollTime { get; set; } /// /// 参赛模式 0 个人,1 团队(是否允许跨校) /// public int type { get; set; } /// /// 组队口令 /// public string cipher { get; set; } /// ///-1个人组的默认值, 是否是团队队长0,队员,1 队长 /// public int leader { get; set; } = -1; public string teamName { get; set; } /// /// 表单填报信息 /// public List enrollInfos { get; set; } = new List(); } public class TeacherEnroll :CosmosEntity { /// /// id tmdid, code TeacherEnroll /// public string schoolId { get; set; } public List enrollInfos { get; set; } = new List(); } public class TeacherEnrollContestDto { //[Required(ErrorMessage = "Required")] //public string activityId { get; set; } [Required(ErrorMessage = "Required")] public string tmdid { get; set; } public string tmdName { get; set; } [Required(ErrorMessage = "Required")] public string schoolId { get; set; } public string schoolName { get; set; } public string tmdPicture { get; set; } public string schoolPicture { get; set; } public long enrollTime { get; set; } /// /// 参赛模式 0 个人,1 团队(是否允许跨校) /// [Required(ErrorMessage = "Required")] public int type { get; set; } public string cipher { get; set; } /// /// -1个人组的默认值, 是否是团队队长0,队员,1 队长 /// public int leader { get; set; } = -1; public string teamName { get; set; } /// /// 表单填报信息 /// public List enrollInfos { get; set; } = new List(); } public class TeacherUploadContestDto { public List files { get; set; } = new List(); public List lessons { get; set; } = new List(); public List sokrates { get; set; } = new List(); public List complexes { get; set; } = new List(); /// /// file sokrates,lesson /// public string type { get; set; } public string schoolId { get; set; } public string schoolName { get; set; } public string schoolPicture { get; set; } public string tmdid { get; set; } /// /// 作品名称 /// public string name { get; set; } } public class EnrollUpload { public string name { get; set; } public long uploadTime { get; set; } public List files { get; set; } = new List(); public List lessons { get; set; } = new List(); public List sokrates { get; set; } = new List(); public List complexes { get; set; } = new List(); /// /// file sokrates /// public string type { get; set; } public HashSet uploadType { get; set; } = new HashSet(); /// ///作品id /// public string uploadId { get; set; } /// /// 真实分数 -1未评分 /// public double score { get; set; } = -1; /// /// 调整分数 -1未评分 /// public double maskScore { get; set; } = -1; /// /// 展示分数,0真实得分,1调整分数,默认真实得分 /// public int showScore { get; set; } //public List expertScore { get; set; } = new List(); } public class MaskScoreDto { /// /// 醍摩豆id /// public string uploadId { get; set; } /// /// 调整分数 -1未评分 /// public double maskScore { get; set; } = -1; /// /// 展示分数,0真实得分,1调整分数,默认真实得分 /// public int showScore { get; set; } /// /// 修改成功0,1作品不存在,-1 未处理。 /// public int hasError { get; set; } = -1; } public class ExpertUploadScore { public string id { get; set; } public string name { get; set; } public double score { get; set; } public string nickname { get; set; } public string picture { get; set; } public List detailScore { get; set; } = new List(); } /// /// Teacher表 /// 专家分配的任务 /// public class ActivityExpertTask : CosmosEntity { public string name { get; set; } public string picture { get; set; } public string tmdname { get; set; } public string activityId { get; set; } //id 专家id , //code ActivityExpertTask-活动id /// /// 专家在优课评选中的评审任务 /// public List contestTasks { get; set; } } public class ActivityExpertDto { public string activityId { get; set; } public string activityName { get; set; } public long stime { get; set; } public long etime { get; set; } public int taskCount { get; set; } public int completeCount { get; set; } public List contestTasks { get; set; } = new List(); public string sas { get; set; } public string url { get; set; } } [Serializable] public class ExpertContestTaskDto : ExpertContestTask { public string expertTmdname { get; set; } public string expertPicture { get; set; } public string expertName { get; set; } public string expertId { get; set; } public string periodSubjectKey { get; set; } /// /// 0,默认未分配,1已经匹配,2学段未选择,3学科未选择,4 学段或学科未选择,5未上传,6学科或学段不匹配,7未匹配到符合的专家,8分配次数不足 /// public int available { get; set; } /// /// 第几轮 /// public int turn { get; set; } public string activityId { get; set; } public T DeepCopy() where T : ExpertContestTaskDto { string jsonString = JsonSerializer.Serialize(this); return JsonSerializer.Deserialize(jsonString); } } /// /// 教师的邀请和报名状态数据 /// public class InviteEnrollTeacherDto { public string id { get; set; } public string name { get; set; } public string picture { get; set; } public string school { get; set; } public string schoolName { get; set; } /// ///-1表示非邀请制的默认状态, 0 未报名,1已报名,用于区级发布, publish=1,joinMode=invite,学校可以去进行邀请某一些教师。 /// public int inviteStatus { get; set; } = -1; /// /// -1表示没有报名模块的默认状态,-2 表示时间未到,0未报名,1已报名 /// public int signContestStatus { get; set; } = -1; public long signContestTime { get; set; } /// /// -1表示没有报名模块的默认状态,0个人,1 团队组 /// public int signContestType { get; set; } = -1; /// /// -1 表示没有上传模块的默认状态 0未上传,1已上传,-2 表示时间未到 /// public int uploadContestStatus { get; set; } = -1; public long uploadContestTime { get; set; } /// /// null没有上传模块的默认状态,file文件 sokrates 苏格拉底 /// public string uploadContestType { get; set; } public HashSet uploadContestTypes { get; set; } = new HashSet(); /// /// 作品分数 /// public double uploadContestScore { get; set; } = -1; /// ///作品id /// public string uploadContestId { get; set; } /// /// 团队名称 /// public string teamNameContest { get; set; } /// /// 团队队长0队员,1队长 /// public int teamLeaderContest { get; set; } /// /// 组队口令 /// public string teamCipherContest { get; set; } public int reviewContestAssignCount { get; set; } public List reviewContestExperts { get; set; } = new List(); } //作品评审结果 public class ContestUploadData { public string id { get; set; } public string name { get; set; } public string code { get; set; } public int count { get; set; } public int status { get; set; } public double score { get; set; } public List detailScore { get; set; } = new List(); } public class ReviewScoreData { public double score { get; set; } = -1; public List detailScore { get; set; } = new List(); public string uploadId { get; set; } } /// /// 专家在优课评选模块的任务分配 /// public class ExpertContestTask { /// /// 作品id /// public string uploadId { get; set; } /// /// 个人:{schoolName}-{tmdname},团队{teamname!=""?{schoolName}-{teamname}:{schoolName}-{tmdname}}({members.count()}) /// public string name { get; set; } /// /// sokrates 苏格拉底 ,file 作品 /// public HashSet uploadTypes { get; set; } = new HashSet(); /// /// 上传文件和苏格拉底链接的数量 /// public int count { get; set; } /// /// 组队口令 /// public string cipher { get; set; } /// /// 参赛类型 0个人,1 团队 /// public int type { get; set; } /// /// -1 个人组的默认值, 0 队员,1队长 /// public int leader { get; set; } = -1; /// /// 队员醍摩豆id ,包含队长,id,name(填报信息的name,真实姓名),code ,nickname 醍摩豆名称 /// public List members { get; set; } = new List(); /// /// 如果是个人组,则是个人的tmdid, 如果是团队组,则是队长的tmdid /// public string tmdid { get; set; } //public string name { get; set; } //public string picture { get; set; } //public string nickname { get; set; } /// /// 评分状态 -1 未评分,1已评分。 /// public int status { get; set; } = -1; public double score { get; set; } = -1; /// /// 评分依据规则的细项得分,score 专家对细项的评分 /// public List detailScore { get; set; }= new List(); public string period { get; set; } public string subject { get; set; } } public class ExpertDto : Expert { /// /// 任务数量,-1未分配任务 /// public int taskCount { get; set; } = -1; /// /// 完成数量,-1未分配任务 /// public int completeCount { get; set; } = -1; /// /// /// public int teacherCount { get; set; } = -1; public List uploads { get; set; } = new List(); } public class ContestAttachment { /// /// 文件名字 /// public string name { get; set; } /// /// 完整路径 /// public string url { get; set; } /// /// 文件大小 /// public long size { get; set; } /// /// 创建时间 /// public long createTime { get; set; } /// /// 文件后缀 /// public string extension { get; set; } /// /// 文件类型 /// public string type { get; set; } public string blob { get; set; } public string hash { get; set; } /// /// 视频播放时长 /// public double duration { get; set; } /// /// blob的容器名称 /// public string cnt { get; set; } /// /// 创建者 /// public string tmdid { get; set; } public List tag { get; set; } = new List(); public string lessonId { get; set; } } public class ContestUploadComplex { /// /// file sokrates,lesson /// public string type { get; set; } /// /// 课例和苏格拉底作品的复合结构 /// public LessonSokrates lessonSokrates { get; set; } /// /// 文件类型的作品 /// public ContestAttachment uploadFile { get; set; } } public class LessonSokrates : LessonRecord { #region 扩展公共属性 /// /// 课例,苏格拉底的附件,用于存放课件等额外的信息 /// public List attachments { get; set; } = new List(); #endregion 扩展公共属性 #region 苏格拉底属性 /// /// 地址 /// public string url { get; set; } /// /// 苏格拉底报告 /// public string report { get; set; } /// /// 课例ID /// public string recordId { get; set; } /// /// 封面 /// public string poster { get; set; } #endregion 苏格拉底属性 #region 课例属性 /// /// 是否展示课例历程 /// public int showProcess { get; set; } #endregion 课例属性 /* #region 苏格拉底和课例类型作品的公共属性 /// /// 课例名称 /// public string name { get; set; } /// /// 教师id /// public string tmdid { get; set; } /// /// 教师醍摩豆id名称 /// public string tmdname { get; set; } /// /// 教师醍摩豆id名称 /// public string tmdpicture { get; set; } /// ///必填 开始时间(时间戳) 1606393763434 /// public long startTime { get; set; } /// /// 视频播放时长 /// public double duration { get; set; } #endregion 苏格拉底和课例类型作品的公共属性 */ } public class ContestSokrates { public string name { get; set; } /// /// 地址 /// public string url { get; set; } /// /// 视频播放时长 /// public double duration { get; set; } /// /// 苏格拉底报告 /// public string report { get; set; } /// /// 课例ID /// public string recordId { get; set; } /// /// 封面 /// public string poster { get; set; } /// /// 教师id /// public string tmdid { get; set; } } /// /// 表单填报信息 /// public class EnrollInfo { /// /// 表单key /// public string code { get; set; } /// ///表单报名填报值 /// public string val { get; set; } } /// /// 在线培训模块的数据结构 /// public class Training : CosmosEntity { //id 活动id, public Training() { code = "Training"; pk = "Training"; } /// /// //参加活动获得积分。根据最后评委打分,0-100的比例获得积分,不足一分按一分计算。 /// public int balance { get; set; } /// /// "online", "submit", "exam"模块 /// public List modules { get; set; } = new List(); public List abilities { get; set; } = new List(); public TrainingOnline online { get; set; } public TrainingSubmit submit { get; set; } public TrainingExam exam { get; set; } public long stime { get; set; } public long etime { get; set; } } public class TrainingOnline { /// /// //最少学习多少积分 /// public int least { get; set; } /// /// //至少修三个能力点 /// public int limit { get; set; } } public class TrainingSubmit { public int balance { get; set; } //单个认证合格获得的积分0-5 } public class TrainingExam { public int balance { get; set; } //单个认证合格获得的积分0-5 } /// /// 教研中心技能点 /// public class TrainingAbility { /// /// //学习完成获得积分,0-10 /// public int balance { get; set; } public string id { get; set; } /// ///新建字段 维度 对应 原来的 subjectId 学科 /// public string dimension { get; set; } /// /// 标号 A1 A2 A3.... /// public string no { get; set; } /// /// 册别name /// [Required(ErrorMessage = "{0} 必须填写")] public string name { get; set; } public List abilityTasks { get; set; } = new List(); public string desc { get; set; } public string sug { get; set; } public List stds { get; set; } = new List(); /// ///自测练习题试卷 blob地址 /// public string blob { get; set; } /// ///默认未设置0 必修1 通识2 选修3 /// public int currency { get; set; } } public class Research : CosmosEntity { //id 活动id, public Research() { code = "Research"; pk = "Research"; } /// /// "sign", //关联HiTeach课例的时候,可自动关联。 "homework", //作业 "examLite", //评测 "vote", //投票 "survey" //问卷, 此处几个活动的id是 赛课大活动的id /// public List modules { get; set; } = new List(); public long stime { get; set; } public long etime { get; set; } public ResearchSign sign { get; set; } public ResearchExamLite examLite { get; set; } public ResearchHomework homework { get; set; } public ResearchSurvey survey { get; set; } public ResearchVote vote { get; set; } } public class ResearchSign { /// /// //活动签到活得0-5 /// public int balance { get; set; } } public class ResearchHomework { public List type { get; set; } = new List(); /// /// //活动签到活得0-5 /// public int balance { get; set; } } public class ResearchExamLite { /// /// //完成评测练习,可获取0-5 /// public int balance { get; set; } } public class ResearchVote { /// /// //完成评测练习,可获取0-5 /// public int balance { get; set; } } public class ResearchSurvey { /// /// //完成评测练习,可获取0-5 /// public int balance { get; set; } } }