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.update /// public class OapiCalendarV2EventUpdateRequest : 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.update"; } 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 { /// /// 添加或者删除状态,add:添加;remove:删除;若通过该接口新增或删除参会人,则该字段必填 /// [XmlElement("attendee_status")] public string AttendeeStatus { get; set; } /// /// 员工工号,若通过该接口新增或删除参会人,则该字段必填 /// [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; } /// /// 日历ID,目前仅支持传primary,表示修改当前用户“我的日程”下的日程 /// [XmlElement("calendar_id")] public string CalendarId { get; set; } /// /// 日程描述 /// [XmlElement("description")] public string Description { get; set; } /// /// 结束时间 /// [XmlElement("end")] public DateTimeDomain End { get; set; } /// /// 日程Id /// [XmlElement("event_id")] public string EventId { get; set; } /// /// 地址 /// [XmlElement("location")] public LocationVoDomain Location { 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 } }