private IModelGraph RemoveRelationshipCore( ModelRelationshipId relationshipId, [NotNull] IModelGraph modelGraph, [NotNull][ItemNotNull] ICollection <ModelItemEventBase> itemEvents) { var oldRelationship = GetRelationship(relationshipId); itemEvents.Add(new ModelRelationshipRemovedEvent(oldRelationship)); return(modelGraph.RemoveEdge(relationshipId)); }
private (IModelGraph, ImmutableDictionary <object, IModelRelationship>) RemoveRelationshipCore( ModelRelationshipId relationshipId, [NotNull] IModelGraph modelGraph, [NotNull] ImmutableDictionary <object, IModelRelationship> payloadToModelRelationshipMap, [NotNull][ItemNotNull] ICollection <ModelItemEventBase> itemEvents) { var oldRelationship = GetRelationship(relationshipId); itemEvents.Add(new ModelRelationshipRemovedEvent(oldRelationship)); return( modelGraph.RemoveEdge(relationshipId), oldRelationship.Payload == null ? payloadToModelRelationshipMap : payloadToModelRelationshipMap.Remove(oldRelationship.Payload) ); }
public IModel RemoveRelationship(ModelRelationshipId relationshipId) => CreateInstance(_graph.RemoveEdge(relationshipId));