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.processinstance.create
///
public class OapiProcessinstanceCreateRequest : BaseDingTalkRequest
{
///
/// 企业微应用标识
///
public Nullable AgentId { get; set; }
///
/// 审批人userid列表
///
public string Approvers { get; set; }
///
/// 审批人列表,支持会签/或签,优先级高于approvers变量
///
public string ApproversV2 { get; set; }
public List ApproversV2_ { set { this.ApproversV2 = TopUtils.ObjectToJson(value); } }
///
/// 抄送人userid列表
///
public string CcList { get; set; }
///
/// 抄送时间,分为(START,FINISH,START_FINISH)
///
public string CcPosition { get; set; }
///
/// 发起人所在的部门
///
public Nullable DeptId { get; set; }
///
/// 审批流表单参数
///
public string FormComponentValues { get; set; }
public List FormComponentValues_ { set { this.FormComponentValues = TopUtils.ObjectToJson(value); } }
///
/// 审批实例发起人的userid
///
public string OriginatorUserId { get; set; }
///
/// 审批流的唯一码
///
public string ProcessCode { get; set; }
#region IDingTalkRequest Members
public override string GetApiName()
{
return "dingtalk.oapi.processinstance.create";
}
public override string GetApiCallType()
{
return DingTalkConstants.CALL_TYPE_OAPI;
}
public override IDictionary GetParameters()
{
TopDictionary parameters = new TopDictionary();
parameters.Add("agent_id", this.AgentId);
parameters.Add("approvers", this.Approvers);
parameters.Add("approvers_v2", this.ApproversV2);
parameters.Add("cc_list", this.CcList);
parameters.Add("cc_position", this.CcPosition);
parameters.Add("dept_id", this.DeptId);
parameters.Add("form_component_values", this.FormComponentValues);
parameters.Add("originator_user_id", this.OriginatorUserId);
parameters.Add("process_code", this.ProcessCode);
if (this.otherParams != null)
{
parameters.AddAll(this.otherParams);
}
return parameters;
}
public override void Validate()
{
RequestValidator.ValidateMaxListSize("approvers", this.Approvers, 20);
RequestValidator.ValidateObjectMaxListSize("approvers_v2", this.ApproversV2, 20);
RequestValidator.ValidateMaxListSize("cc_list", this.CcList, 20);
RequestValidator.ValidateRequired("dept_id", this.DeptId);
RequestValidator.ValidateRequired("form_component_values", this.FormComponentValues);
RequestValidator.ValidateObjectMaxListSize("form_component_values", this.FormComponentValues, 150);
RequestValidator.ValidateRequired("originator_user_id", this.OriginatorUserId);
RequestValidator.ValidateRequired("process_code", this.ProcessCode);
}
///
/// FormComponentValueVoDomain Data Structure.
///
[Serializable]
public class FormComponentValueVoDomain : TopObject
{
///
/// 扩展值
///
[XmlElement("ext_value")]
public string ExtValue { get; set; }
///
/// 表单每一栏的名称
///
[XmlElement("name")]
public string Name { get; set; }
///
/// 表单每一栏的值
///
[XmlElement("value")]
public string Value { get; set; }
}
///
/// ProcessInstanceApproverVoDomain Data Structure.
///
[Serializable]
public class ProcessInstanceApproverVoDomain : TopObject
{
///
/// 审批类型,会签:AND;或签:OR;单人:NONE
///
[XmlElement("task_action_type")]
public string TaskActionType { get; set; }
///
/// 审批人userid列表,会签/或签列表长度必须大于1,非会签/或签列表长度只能为1
///
[XmlArray("user_ids")]
[XmlArrayItem("string")]
public List UserIds { get; set; }
}
#endregion
}
}