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