Files
serein-flow/Library/DynamicFlow/NodeModel/SingleExpOpNode.cs
fengjiayi 75333e621f GIT练习
2024-08-05 10:11:58 +08:00

45 lines
1.1 KiB
C#

using Serein.DynamicFlow.SerinExpression;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Serein.DynamicFlow.NodeModel
{
/// <summary>
/// Expression Operation - 表达式操作
/// </summary>
public class SingleExpOpNode : NodeBase
{
public string Expression { get; set; }
public override object? Execute(DynamicContext context)
{
//if (PreviousNode != null && PreviousNode.FlowData == null)
//{
// // 存在
// throw new InvalidOperationException("previous node data is null.");
//}
//else
//{
//}
var data = PreviousNode?.FlowData;
var newData = SerinExpressionEvaluator.Evaluate(Expression, data, out bool isChange);
FlowState = true;
Console.WriteLine(newData);
if (isChange)
{
return newData;
}
else
{
return PreviousNode?.FlowData;
}
}
}
}