2024-09-12 20:32:54 +08:00
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections.Generic;
|
2024-12-23 23:19:10 +08:00
|
|
|
|
using System.ComponentModel;
|
2024-09-12 20:32:54 +08:00
|
|
|
|
using System.Linq;
|
|
|
|
|
|
using System.Text;
|
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
|
|
2024-10-20 12:10:57 +08:00
|
|
|
|
namespace Serein.Library
|
2024-09-12 20:32:54 +08:00
|
|
|
|
{
|
2024-10-11 19:31:34 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 用来判断该方法属于什么节点,使运行环境决定方法的运行逻辑
|
|
|
|
|
|
/// </summary>
|
2024-09-12 20:32:54 +08:00
|
|
|
|
public enum NodeType
|
|
|
|
|
|
{
|
2025-01-22 21:09:52 +08:00
|
|
|
|
|
2024-09-12 20:32:54 +08:00
|
|
|
|
/// <summary>
|
2024-10-07 22:52:10 +08:00
|
|
|
|
/// 初始化,流程启动时执行(不生成节点)
|
2024-10-11 19:31:34 +08:00
|
|
|
|
/// <para>可以异步等待</para>
|
2024-09-12 20:32:54 +08:00
|
|
|
|
/// </summary>
|
|
|
|
|
|
Init,
|
|
|
|
|
|
/// <summary>
|
2024-10-07 22:52:10 +08:00
|
|
|
|
/// 开始载入,流程启动时执行(不生成节点)
|
2024-10-11 19:31:34 +08:00
|
|
|
|
/// <para>可以异步等待</para>
|
2024-09-12 20:32:54 +08:00
|
|
|
|
/// </summary>
|
|
|
|
|
|
Loading,
|
|
|
|
|
|
/// <summary>
|
2024-10-07 22:52:10 +08:00
|
|
|
|
/// 结束,流程结束时执行(不生成节点)
|
2024-10-11 19:31:34 +08:00
|
|
|
|
/// <para>可以异步等待</para>
|
2024-09-12 20:32:54 +08:00
|
|
|
|
/// </summary>
|
|
|
|
|
|
Exit,
|
|
|
|
|
|
|
2025-03-14 16:04:06 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// <para>UI节点(每个节点只会执行一次对应的方法)</para>
|
|
|
|
|
|
/// <para>需要返回IEmbeddedContent接口</para>
|
|
|
|
|
|
/// <para>IEmbeddedContent接口实现由你决定</para>
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
UI,
|
2025-01-22 21:09:52 +08:00
|
|
|
|
|
2024-09-12 20:32:54 +08:00
|
|
|
|
/// <summary>
|
2025-07-31 23:59:31 +08:00
|
|
|
|
/// <para>触发器节点,必须为标记在可异步等待的方法</para>
|
2024-10-11 19:31:34 +08:00
|
|
|
|
/// <para>方法返回值必须为Task<IFlipflopContext<TResult>>,若为其它返回值,将不会创建节点。</para>
|
|
|
|
|
|
/// <para>触发器根据在分支中的位置,分为两种类型:流程分支中的触发器、全局触发器</para>
|
|
|
|
|
|
/// <para>一般的触发器:存在于分支某处,也可能是分支的终点,但一定不是流程的起点与分支的起点。</para>
|
|
|
|
|
|
/// <para>一般的触发器行为:在当前分支中执行一次之后不再执行,一般用于等待某个操作的响应。</para>
|
|
|
|
|
|
/// <para>全局触发器:没有上游分支、同时并非流程的起始节点。</para>
|
|
|
|
|
|
/// <para>全局触发器行为:全局触发器会循环执行,直到流程结束。</para>
|
2024-09-12 20:32:54 +08:00
|
|
|
|
/// </summary>
|
|
|
|
|
|
Flipflop,
|
|
|
|
|
|
/// <summary>
|
2024-10-11 19:31:34 +08:00
|
|
|
|
/// <para>动作节点,可以异步等待</para>
|
2025-07-28 20:04:56 +08:00
|
|
|
|
/// <para>如果不显式的设置入参数据,就会默认使用该节点的运行时上一个节点的数据。</para>
|
|
|
|
|
|
/// <para>假如上一节点是某个对象,但入参需要的是对象中某个属性/字段,则建议使用表达式节点获取所需要的数据。</para>
|
2024-10-11 19:31:34 +08:00
|
|
|
|
/// <para>关于@Get取值表达式的使用方法:</para>
|
|
|
|
|
|
/// <para>public class UserInfo </para>
|
|
|
|
|
|
/// <para>{ </para>
|
2025-07-28 20:04:56 +08:00
|
|
|
|
/// <para> public string Name; // 取值表达式:@Get .Name </para>
|
|
|
|
|
|
/// <para> public string[] PhoneNums; // 取值表达式:@Get .PhoneNums </para>
|
2024-10-11 19:31:34 +08:00
|
|
|
|
/// <para> } </para>
|
|
|
|
|
|
/// <para>格式说明:@Get大小写不敏感,然后空一格,需要标记“.”,然后才是获取成员名称(成员名称大小写敏感)。</para>
|
2024-09-15 12:15:32 +08:00
|
|
|
|
/// </summary>
|
|
|
|
|
|
Action,
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-10-11 19:31:34 +08:00
|
|
|
|
|
|
|
|
|
|
|
2024-09-15 19:48:27 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 生成的节点控件
|
|
|
|
|
|
/// </summary>
|
2024-09-15 12:15:32 +08:00
|
|
|
|
public enum NodeControlType
|
|
|
|
|
|
{
|
2024-12-23 23:19:10 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 预料之外的情况
|
|
|
|
|
|
/// </summary>
|
2024-09-15 12:15:32 +08:00
|
|
|
|
None,
|
|
|
|
|
|
/// <summary>
|
2024-09-12 20:32:54 +08:00
|
|
|
|
/// 动作节点
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
Action,
|
2024-09-15 12:15:32 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 触发器节点
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
Flipflop,
|
2024-12-23 23:19:10 +08:00
|
|
|
|
|
2025-03-14 16:04:06 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// UI节点
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
UI,
|
|
|
|
|
|
|
2024-09-15 12:15:32 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 表达式操作节点
|
|
|
|
|
|
/// </summary>
|
2024-12-23 23:19:10 +08:00
|
|
|
|
[Description("base")]
|
2024-09-15 12:15:32 +08:00
|
|
|
|
ExpOp,
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 表达式操作节点
|
|
|
|
|
|
/// </summary>
|
2024-12-23 23:19:10 +08:00
|
|
|
|
[Description("base")]
|
2024-09-15 12:15:32 +08:00
|
|
|
|
ExpCondition,
|
2025-05-27 23:46:06 +08:00
|
|
|
|
|
2024-12-12 20:31:50 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 全局数据
|
|
|
|
|
|
/// </summary>
|
2024-12-23 23:19:10 +08:00
|
|
|
|
[Description("base")]
|
2024-12-12 20:31:50 +08:00
|
|
|
|
GlobalData,
|
2024-12-20 23:39:29 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 脚本节点
|
|
|
|
|
|
/// </summary>
|
2024-12-23 23:19:10 +08:00
|
|
|
|
[Description("base")]
|
2024-12-20 23:39:29 +08:00
|
|
|
|
Script,
|
2025-03-18 11:52:54 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// C#脚本节点
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
[Description("base")]
|
|
|
|
|
|
NetScript,
|
2025-05-27 23:46:06 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 流程调用节点(流程图公开的节点)
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
[Description("base")]
|
|
|
|
|
|
FlowCall,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-09-12 20:32:54 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|