using Serein.Library.Api;
using Serein.Library.Enums;
using Serein.Library.Core.NodeFlow;
using Serein.NodeFlow.Tool.SerinExpression;
namespace Serein.NodeFlow.Model
{
///
/// Expression Operation - 表达式操作
///
public class SingleExpOpNode : NodeBase
{
///
/// 表达式
///
public string Expression { get; set; }
public override object? Execute(IDynamicContext context)
{
var data = PreviousNode?.FlowData;
var newData = SerinExpressionEvaluator.Evaluate(Expression, data, out bool isChange);
FlowState = FlowStateType.Succeed;
Console.WriteLine(newData);
if (isChange)
{
return newData;
}
else
{
return PreviousNode?.FlowData;
}
}
}
}