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.calendar.list /// public class OapiCalendarListRequest : BaseDingTalkRequest { /// /// 钉钉日历文件夹的对外id,默认是自己的默认文件夹 /// public string CalendarFolderId { get; set; } /// /// 结果返回的最多数量,默认250,最多返回2500 /// public Nullable MaxResults { get; set; } /// /// 查询对应页,值有上一次请求返回的结果里对应nextPageToken /// public string PageToken { get; set; } /// /// 是否需要展开循环日程 /// public Nullable SingleEvents { get; set; } /// /// 查询时间上限 /// public string TimeMax { get; set; } public DateTimeDomain TimeMax_ { set { this.TimeMax = TopUtils.ObjectToJson(value); } } /// /// 查询时间下限 /// public string TimeMin { get; set; } public DateTimeDomain TimeMin_ { set { this.TimeMin = TopUtils.ObjectToJson(value); } } /// /// 员工ID /// public string UserId { get; set; } #region IDingTalkRequest Members public override string GetApiName() { return "dingtalk.oapi.calendar.list"; } public override string GetApiCallType() { return DingTalkConstants.CALL_TYPE_OAPI; } public override IDictionary GetParameters() { TopDictionary parameters = new TopDictionary(); parameters.Add("calendar_folder_id", this.CalendarFolderId); parameters.Add("max_results", this.MaxResults); parameters.Add("page_token", this.PageToken); parameters.Add("single_events", this.SingleEvents); parameters.Add("time_max", this.TimeMax); parameters.Add("time_min", this.TimeMin); parameters.Add("user_id", this.UserId); if (this.otherParams != null) { parameters.AddAll(this.otherParams); } return parameters; } public override void Validate() { RequestValidator.ValidateRequired("user_id", this.UserId); } /// /// DateTimeDomain Data Structure. /// [Serializable] public class DateTimeDomain : TopObject { /// /// 时间 'yyyy-MM-ddTHH:mm:ssZ', /// [XmlElement("date_time")] public string DateTime_ { get; set; } /// /// 时区 /// [XmlElement("time_zone")] public string TimeZone { get; set; } } #endregion } }