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.v2.event.create /// public class OapiCalendarV2EventCreateRequest : BaseDingTalkRequest { /// /// 开放平台应用对应的AgentId /// public Nullable Agentid { get; set; } /// /// 日程创建对象 /// public string Event { get; set; } public EventDomain Event_ { set { this.Event = TopUtils.ObjectToJson(value); } } #region IDingTalkRequest Members public override string GetApiName() { return "dingtalk.oapi.calendar.v2.event.create"; } public override string GetApiCallType() { return DingTalkConstants.CALL_TYPE_OAPI; } public override IDictionary GetParameters() { TopDictionary parameters = new TopDictionary(); parameters.Add("agentid", this.Agentid); parameters.Add("event", this.Event); if (this.otherParams != null) { parameters.AddAll(this.otherParams); } return parameters; } public override void Validate() { RequestValidator.ValidateRequired("event", this.Event); } /// /// AttendeeDomain Data Structure. /// [Serializable] public class AttendeeDomain : TopObject { /// /// 员工工号 /// [XmlElement("userid")] public string Userid { get; set; } } /// /// DateTimeDomain Data Structure. /// [Serializable] public class DateTimeDomain : TopObject { /// /// 日期,全天日程使用,格式必须为'yyyy-mm-dd',和timestamp字段互斥,该字段有值时,则忽略timestamp字段 /// [XmlElement("date")] public string Date { get; set; } /// /// 时间戳,单位为秒。非全天日程使用,与date字段互斥 /// [XmlElement("timestamp")] public Nullable Timestamp { get; set; } /// /// 时区信息,默认为"Asia/Shanghai"。date有值时,timezone 为 UTC; /// [XmlElement("timezone")] public string Timezone { get; set; } } /// /// OpenCalendarReminderVoDomain Data Structure. /// [Serializable] public class OpenCalendarReminderVoDomain : TopObject { /// /// 提醒方式.app表示应用内提醒 /// [XmlElement("method")] public string Method { get; set; } /// /// 开始前提醒的分钟数,有效值为0,5,15,30,60,1440 /// [XmlElement("minutes")] public Nullable Minutes { get; set; } } /// /// LocationVoDomain Data Structure. /// [Serializable] public class LocationVoDomain : TopObject { /// /// 纬度 /// [XmlElement("latitude")] public string Latitude { get; set; } /// /// 经度 /// [XmlElement("longitude")] public string Longitude { get; set; } /// /// 地址详情 /// [XmlElement("place")] public string Place { get; set; } } /// /// EventDomain Data Structure. /// [Serializable] public class EventDomain : TopObject { /// /// 日程参与者,参与者最大人数为100(包括组织者) /// [XmlArray("attendees")] [XmlArrayItem("attendee")] public List Attendees { get; set; } /// /// 目前只能传primary,表示创建的日程在“我的日程”下 /// [XmlElement("calendar_id")] public string CalendarId { get; set; } /// /// 日程描述 /// [XmlElement("description")] public string Description { get; set; } /// /// 结束时间 /// [XmlElement("end")] public DateTimeDomain End { get; set; } /// /// 地址信息 /// [XmlElement("location")] public LocationVoDomain Location { get; set; } /// /// 受限字段,仅支持传NONE或者APP /// [XmlElement("notification_type")] public string NotificationType { get; set; } /// /// 日程组织者 /// [XmlElement("organizer")] public AttendeeDomain Organizer { get; set; } /// /// 会议开始前多少分钟提醒 /// [XmlElement("reminder")] public OpenCalendarReminderVoDomain Reminder { get; set; } /// /// 开始时间 /// [XmlElement("start")] public DateTimeDomain Start { get; set; } /// /// 日程主题 /// [XmlElement("summary")] public string Summary { get; set; } } #endregion } }