尝试将节点流导出为c#代码文件

This commit is contained in:
fengjiayi
2025-07-06 14:34:49 +08:00
parent 162dc7bcf8
commit b25fd9c83c
45 changed files with 1625 additions and 361 deletions

View File

@@ -37,22 +37,23 @@ namespace Serein.Library.Api
/// </summary>
Exception ExceptionOfRuning { get; set; }
/* /// <summary>
/// 忽略处理该节点流程
/// </summary>
void IgnoreFlowHandle(NodeModelBase node);
/// <summary>
/// 获取此次流程处理状态
/// 获取节点的运行时参数数据
/// </summary>
/// <param name="node"></param>
/// <returns></returns>
bool GetIgnodeFlowStateUpload(NodeModelBase node);
/// <param name="nodeModel">节点</param>
/// <param name="index">第几个参数</param>
/// <param name="data">数据</param>
void SetParamsTempData(string nodeModel, int index, object data);
/// <summary>
/// 恢复流程处理状态
/// 获取节点的运行时参数数据
/// </summary>
/// <param name="node"></param>
/// <returns></returns>
void RecoverIgnodeFlowStateUpload(NodeModelBase node);*/
/// <param name="nodeModel">节点</param>
/// <param name="index">第几个参数</param>
/// <param name="data">获取到的参数</param>
bool TryGetParamsTempData(string nodeModel, int index, out object data);
/// <summary>
@@ -60,33 +61,33 @@ namespace Serein.Library.Api
/// </summary>
/// <param name="currentNodeModel">当前节点</param>
/// <param name="PreviousNode">运行时上一节点</param>
void SetPreviousNode(IFlowNode currentNodeModel, IFlowNode PreviousNode);
void SetPreviousNode(string currentNodeModel, string PreviousNode);
/// <summary>
/// 获取当前节点的运行时上一节点,用以流程中获取数据
/// </summary>
/// <param name="currentNodeModel"></param>
/// <returns></returns>
IFlowNode GetPreviousNode(IFlowNode currentNodeModel);
string GetPreviousNode(string currentNodeModel);
/// <summary>
/// 获取节点的数据(当前节点需要获取上一节点数据时,需要从 运行时上一节点 的Guid 通过这个方法进行获取
/// </summary>
/// <param name="nodeModel"></param>
/// <returns></returns>
FlowResult GetFlowData(IFlowNode nodeModel);
FlowResult GetFlowData(string nodeModel);
/// <summary>
/// 上一节点数据透传到下一节点
/// </summary>
/// <param name="nodeModel"></param>
FlowResult TransmissionData(IFlowNode nodeModel);
FlowResult TransmissionData(string nodeModel);
/// <summary>
/// 添加或更新当前节点的数据
/// </summary>
/// <param name="nodeModel"></param>
/// <param name="flowData"></param>
void AddOrUpdate(IFlowNode nodeModel, FlowResult flowData);
void AddOrUpdate(string nodeModel, FlowResult flowData);
/// <summary>
/// 重置流程状态(用于对象池回收)
@@ -97,14 +98,5 @@ namespace Serein.Library.Api
/// 用以提前结束当前上下文流程的运行
/// </summary>
void Exit();
/*/// <summary>
/// 定时循环触发
/// </summary>
/// <param name="callback"></param>
/// <param name="time"></param>
/// <param name="count"></param>
/// <returns></returns>
// Task CreateTimingTask(Action callback, int time = 100, int count = -1);*/
}
}

View File

@@ -1,4 +1,5 @@
using System.Threading.Tasks;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace Serein.Library.Api
{
@@ -62,6 +63,27 @@ namespace Serein.Library.Api
/// <param name="expression">被触发的表达式</param>
/// <param name="type">中断类型。0主动监视1表达式</param>
void TriggerInterrupt(string nodeGuid, string expression, InterruptTriggerEventArgs.InterruptTriggerType type);
/// <summary>
/// 调用流程接口,将返回 FlowResult.Value。如果需要 FlowResult 对象,请使用该方法的泛型版本。
/// </summary>
/// <param name="apiGuid">流程接口节点Guid</param>
/// <param name="dict">调用时入参参数</param>
/// <returns></returns>
Task<object> InvokeAsync(string apiGuid, Dictionary<string, object> dict);
/// <summary>
/// 调用流程接口,将返回 FlowResult.Value。如果需要 FlowResult 对象,请使用该方法的泛型版本。
/// </summary>
/// <param name="apiGuid">流程接口节点Guid</param>
/// <param name="dict">调用时入参参数</param>
/// <returns></returns>
Task<TResult> InvokeAsync<TResult>(string apiGuid, Dictionary<string, object> dict);
}

View File

@@ -846,9 +846,14 @@ namespace Serein.Library.Api
/// <summary>
/// 加载项目文件
/// </summary>
/// <param name="flowEnvInfo">包含项目信息的远程环境</param>
/// <param name="filePath"></param>
void LoadProject(FlowEnvInfo flowEnvInfo, string filePath);
void LoadProject(string filePath);
/// <summary>
/// 加载项目文件
/// </summary>
/// <param name="filePath"></param>
Task LoadProjetAsync(string filePath);
/// <summary>
/// 保存项目