using System.Collections.Generic;
using System.Reflection;
namespace Serein.Library
{
///
/// 环境信息
///
public class FlowEnvInfo
{
///
/// 环境方法信息
///
public FlowLibraryInfo[] LibraryMds { get; set; }
///
/// 项目信息
///
public SereinProjectData Project { get; set; }
}
///
/// 程序集相关的方法信息
///
public class FlowLibraryInfo
{
///
/// 程序集名称
///
public string AssemblyName { get; set; }
///
/// 文件名
///
public string FileName { get; set; }
///
/// 路径
///
public string FilePath { get; set; }
///
/// 相关的方法详情
///
public List MethodInfos { get; set; }
}
///
/// 项目数据
///
public class SereinProjectData
{
///
/// 基础
///
public Basic Basic { get; set; }
///
/// 依赖的DLL
///
public FlowLibraryInfo[] Librarys { get; set; }
///
/// 画布集合
///
public FlowCanvasDetailsInfo[] Canvass { get; set; }
///
/// 节点集合
///
public NodeInfo[] Nodes { get; set; }
}
///
/// 基础,项目文件相关
///
public class Basic
{
/////
///// 画布
/////
//public FlowCanvasInfo Canvas { get; set; }
///
/// 版本
///
public string Versions { get; set; }
}
/*
///
/// 项目依赖的程序集,项目文件相关
///
///
public class FlowLibraryInfo
{
}
*/
///
/// 节点信息,项目文件相关
///
public class NodeInfo
{
///
/// 所属画布Guid
///
public string CanvasGuid { get; set; }
///
/// 节点的GUID
///
public string Guid { get; set; }
///
/// 是否全局公开
///
public bool IsPublic { get; set; }
///
/// 节点方法所属的程序集名称
///
public string AssemblyName { get;set; }
///
/// 节点对应的名称
///
public string MethodName { get; set; }
///
/// 显示标签
///
public string Label { get; set; }
///
/// 类型
///
public string Type { get; set; }
///
/// 父节点集合
///
public Dictionary PreviousNodes { get; set; }
///
/// 后续节点集合
///
public Dictionary SuccessorNodes { get; set; }
///
/// 真分支节点GUID
///
public string[] TrueNodes { get; set; }
///
/// 假分支节点
///
public string[] FalseNodes { get; set; }
///
/// 上游分支
///
public string[] UpstreamNodes { get; set; }
///
/// 异常分支
///
public string[] ErrorNodes { get; set; }
///
/// 参数
///
public ParameterData[] ParameterData { get; set; }
///
/// 如果节点放置在了区域控件上,这里会有父级节点Guid
///
public string ParentNodeGuid{ get; set; }
///
/// 如果是区域控件,则会存在子项,这里记录的是子项的Guid。
///
public string[] ChildNodeGuids { get; set; }
///
/// 于画布中的位置
///
public PositionOfUI Position { get; set; }
///
/// 是否中断
///
public bool IsInterrupt { get; set; }
///
/// 是否使能
///
public bool IsEnable { get; set; }
///
/// 是否保护参数
///
public bool IsProtectionParameter { get; set; }
///
/// 自定义数据
///
public dynamic CustomData { get; set; }
}
///
/// 参数信息,项目文件相关
///
public class ParameterData
{
///
/// 参数类型,true时使用自定义的入参,false时由运行环境自动传参
///
public bool State { get; set; }
///
/// 参数来源节点
///
public string SourceNodeGuid { get; set; }
///
/// 来源类型
///
public string SourceType { get; set; }
///
/// 参数名称
///
public string ArgName { get; set; }
///
/// 自定义入参
///
public string Value { get; set; }
}
///
/// 节点于画布中的位置(通用类)
///
[FlowDataProperty]
public partial class PositionOfUI
{
///
/// 构造一个坐标
///
public PositionOfUI(double x, double y)
{
_x = x; _y = y;
}
///
/// 指示控件在画布的横向向方向上的位置
///
[DataInfo]
private double _x = 0;
///
/// 指示控件在画布的纵向方向上的位置
///
[DataInfo]
private double _y = 0;
}
}