예제 #1
0
        private IModelGraph RemoveNodeCore(
            ModelNodeId nodeId,
            [NotNull] IModelGraph modelGraph,
            [NotNull][ItemNotNull] ICollection <ModelItemEventBase> itemEvents)
        {
            var oldNode = GetNode(nodeId);

            itemEvents.Add(new ModelNodeRemovedEvent(oldNode));
            return(modelGraph.RemoveVertex(nodeId));
        }
예제 #2
0
        private (IModelGraph, ImmutableDictionary <object, IModelNode>) RemoveNodeCore(
            ModelNodeId nodeId,
            [NotNull] IModelGraph modelGraph,
            [NotNull] ImmutableDictionary <object, IModelNode> payloadToModelNodeMap,
            [NotNull][ItemNotNull] ICollection <ModelItemEventBase> itemEvents)
        {
            var oldNode = GetNode(nodeId);

            itemEvents.Add(new ModelNodeRemovedEvent(oldNode));

            return(
                modelGraph.RemoveVertex(nodeId),
                oldNode.Payload == null
                    ? payloadToModelNodeMap
                    : payloadToModelNodeMap.Remove(oldNode.Payload)
                );
        }
예제 #3
0
 public IModel RemoveNode(ModelNodeId nodeId) => CreateInstance(_graph.RemoveVertex(nodeId));