private (IModelGraph, ImmutableDictionary <object, IModelNode>) UpdateNodeCore( [NotNull] IModelNode updatedNode, [NotNull] IModelGraph modelGraph, [NotNull] ImmutableDictionary <object, IModelNode> payloadToModelNodeMap, [NotNull][ItemNotNull] ICollection <ModelItemEventBase> itemEvents) { var oldNode = GetNode(updatedNode.Id); itemEvents.Add(new ModelNodeUpdatedEvent(oldNode, updatedNode)); if (oldNode.Payload != null) { payloadToModelNodeMap = payloadToModelNodeMap.Remove(oldNode.Payload); } if (updatedNode.Payload != null) { payloadToModelNodeMap = payloadToModelNodeMap.Add(updatedNode.Payload, updatedNode); } return( modelGraph.UpdateVertex(updatedNode), payloadToModelNodeMap ); }
public IModel ReplaceNode(IModelNode newNode) => CreateInstance(_graph.UpdateVertex(newNode));
public IModel UpdateNode(IModelNode updatedNode) => CreateInstance(_graph.UpdateVertex(updatedNode));