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
}
}