流程上下文添加了调用信息记录

This commit is contained in:
fengjiayi
2025-07-28 17:38:51 +08:00
parent ccb8e49abc
commit 74961fa2c4
22 changed files with 480 additions and 144 deletions

View File

@@ -78,21 +78,29 @@ namespace Serein.NodeFlow.Model.Operation
public override async Task<bool> ExecuteAsync()
{
if (!ValidationParameter()) return false;
ContainerNode.PlaceNode(Node);
await TriggerEvent(() =>
var isSuccess = ContainerNode.PlaceNode(Node);
if(isSuccess is true)
{
flowEnvironmentEvent.OnNodePlace(new NodePlaceEventArgs(CanvasGuid, NodeGuid, ContainerNodeGuid)); // 通知UI更改节点放置位置
});
return true;
await TriggerEvent(() =>
{
flowEnvironmentEvent.OnNodePlace(new NodePlaceEventArgs(CanvasGuid, NodeGuid, ContainerNodeGuid)); // 通知UI更改节点放置位置
});
}
return isSuccess;
}
public override bool Undo()
{
ContainerNode.TakeOutNode(Node);
flowEnvironmentEvent.OnNodeTakeOut(new NodeTakeOutEventArgs(CanvasGuid, NodeGuid)); // 重新放置在画布上
return true;
var isSuccess = ContainerNode.TakeOutNode(Node);
if (isSuccess is true)
{
_ = TriggerEvent(() =>
{
// 取出节点,重新放置在画布上
flowEnvironmentEvent.OnNodeTakeOut(new NodeTakeOutEventArgs(CanvasGuid, ContainerNode.Guid, NodeGuid));
});
}
return isSuccess;
}

View File

@@ -65,23 +65,29 @@ namespace Serein.NodeFlow.Model.Operation
{
if (!ValidationParameter()) return false;
ContainerNode.TakeOutNode(Node);
await TriggerEvent(() =>
var isSuccess = ContainerNode.TakeOutNode(Node);
if (isSuccess is true)
{
flowEnvironmentEvent.OnNodeTakeOut(new NodeTakeOutEventArgs(CanvasGuid, NodeGuid)); // 重新放置在画布上
});
return true;
await TriggerEvent(() =>
{
// 取出节点,重新放置在画布上
flowEnvironmentEvent.OnNodeTakeOut(new NodeTakeOutEventArgs(CanvasGuid, ContainerNode.Guid, NodeGuid));
});
}
return isSuccess;
}
public override bool Undo()
{
ContainerNode.PlaceNode(Node);
if (ContainerNode is IFlowNode containerFlowNode)
var isSuccess = ContainerNode.PlaceNode(Node);
if (isSuccess is true)
{
flowEnvironmentEvent.OnNodePlace(new NodePlaceEventArgs(CanvasGuid, NodeGuid, containerFlowNode.Guid)); // 通知UI更改节点放置位置
if (ContainerNode is IFlowNode containerFlowNode)
{
flowEnvironmentEvent.OnNodePlace(new NodePlaceEventArgs(CanvasGuid, NodeGuid, containerFlowNode.Guid)); // 通知UI更改节点放置位置
}
}
return true;
return isSuccess;
}