using System; using System.Xml.Serialization; using System.Collections.Generic; using Top.Api.Util; using Top.Api; using Top.Api.DingTalk; namespace DingTalk.Api.Request { /// /// TOP API: dingtalk.oapi.edu.course.list /// public class OapiEduCourseListRequest : BaseDingTalkRequest { /// /// 按课程编码列表查询 /// public string CourseCodes { get; set; } /// /// 表示分页游标,从0开始 /// public Nullable Cursor { get; set; } /// /// 时间查询结束区间 /// public Nullable EndTime { get; set; } /// /// 按课程名称查询 /// public string Name { get; set; } /// /// 当前操作人的用户ID /// public string OpUserid { get; set; } /// /// 查询选项 /// public string Option { get; set; } public QueryCourseOptionDomain Option_ { set { this.Option = TopUtils.ObjectToJson(value); } } /// /// 参与方查询条件 /// public string ParticipantCondition { get; set; } public QueryCourseParticipantConditionDomain ParticipantCondition_ { set { this.ParticipantCondition = TopUtils.ObjectToJson(value); } } /// /// 查询的场景:当前有:manage(管理视角),lecture(授课视角) /// public string Scene { get; set; } /// /// 表示分页大小 /// public Nullable Size { get; set; } /// /// 时间查询开始区间 /// public Nullable StartTime { get; set; } /// /// 课程状态值 /// public string Statuses { get; set; } /// /// 按应用唯一标识列表查询 /// public string SuiteKeys { get; set; } /// /// 授课老师查询条件 /// public string TeacherConditions { get; set; } public List TeacherConditions_ { set { this.TeacherConditions = TopUtils.ObjectToJson(value); } } #region IDingTalkRequest Members public override string GetApiName() { return "dingtalk.oapi.edu.course.list"; } public override string GetApiCallType() { return DingTalkConstants.CALL_TYPE_OAPI; } public override IDictionary GetParameters() { TopDictionary parameters = new TopDictionary(); parameters.Add("course_codes", this.CourseCodes); parameters.Add("cursor", this.Cursor); parameters.Add("end_time", this.EndTime); parameters.Add("name", this.Name); parameters.Add("op_userid", this.OpUserid); parameters.Add("option", this.Option); parameters.Add("participant_condition", this.ParticipantCondition); parameters.Add("scene", this.Scene); parameters.Add("size", this.Size); parameters.Add("start_time", this.StartTime); parameters.Add("statuses", this.Statuses); parameters.Add("suite_keys", this.SuiteKeys); parameters.Add("teacher_conditions", this.TeacherConditions); if (this.otherParams != null) { parameters.AddAll(this.otherParams); } return parameters; } public override void Validate() { RequestValidator.ValidateMaxListSize("course_codes", this.CourseCodes, 100); RequestValidator.ValidateRequired("cursor", this.Cursor); RequestValidator.ValidateMinValue("cursor", this.Cursor, 0); RequestValidator.ValidateRequired("op_userid", this.OpUserid); RequestValidator.ValidateRequired("size", this.Size); RequestValidator.ValidateMaxValue("size", this.Size, 100); RequestValidator.ValidateMinValue("size", this.Size, 1); RequestValidator.ValidateMaxListSize("statuses", this.Statuses, 5); RequestValidator.ValidateMaxListSize("suite_keys", this.SuiteKeys, 5); RequestValidator.ValidateObjectMaxListSize("teacher_conditions", this.TeacherConditions, 30); } /// /// QueryCourseOptionDomain Data Structure. /// [Serializable] public class QueryCourseOptionDomain : TopObject { /// /// 是否连带查询课堂信息 /// [XmlElement("b_fetch_classrooms")] public Nullable BFetchClassrooms { get; set; } } /// /// QueryCourseParticipantConditionDomain Data Structure. /// [Serializable] public class QueryCourseParticipantConditionDomain : TopObject { /// /// 参与方角色选项 /// [XmlElement("role")] public string Role { get; set; } } /// /// QueryTeacherConditionDomain Data Structure. /// [Serializable] public class QueryTeacherConditionDomain : TopObject { /// /// 授课老师组织CorpId /// [XmlElement("corpid")] public string Corpid { get; set; } /// /// 老师用户id /// [XmlElement("userid")] public string Userid { get; set; } } #endregion } }