private void OnModelChanged(ModelEventBase modelEvent) { DiagramService.UpdateModel(modelEvent.NewModel); switch (modelEvent) { case ModelNodeUpdatedEvent modelNodeUpdatedEvent: DiagramService.UpdateModelNode(modelNodeUpdatedEvent.NewNode); break; case ModelNodeRemovedEvent modelNodeRemovedEvent: var removedNode = modelNodeRemovedEvent.RemovedNode; DiagramService.RemoveNode(removedNode.Id); break; case ModelRelationshipAddedEvent modelRelationshipAddedEvent: var addedRelationship = modelRelationshipAddedEvent.AddedRelationship; ShowModelRelationshipIfBothEndsAreVisible(addedRelationship, DiagramService.LatestDiagram); break; case ModelRelationshipRemovedEvent modelRelationshipRemovedEvent: var modelRelationship = modelRelationshipRemovedEvent.RemovedRelationship; DiagramService.RemoveConnector(modelRelationship.Id); break; case ModelClearedEvent _: DiagramService.ClearDiagram(); break; } }
private void ProcessModelItemEvent(ModelItemEventBase modelItemEvent) { switch (modelItemEvent) { case ModelNodeUpdatedEvent modelNodeUpdated: var updatedNode = modelNodeUpdated.NewNode; DiagramService.UpdateModelNode(updatedNode); break; case ModelNodeRemovedEvent modelNodeRemovedEvent: var removedNode = modelNodeRemovedEvent.RemovedNode; DiagramService.RemoveNode(removedNode.Id); break; case ModelRelationshipAddedEvent modelRelationshipAddedEvent: var addedRelationship = modelRelationshipAddedEvent.AddedRelationship; ShowModelRelationshipIfBothEndsAreVisible(addedRelationship, DiagramService.LatestDiagram); break; case ModelRelationshipRemovedEvent modelRelationshipRemovedEvent: var modelRelationship = modelRelationshipRemovedEvent.RemovedRelationship; DiagramService.RemoveConnector(modelRelationship.Id); break; } }