private void AddConnection(string label, NodeGUI startNode, ConnectionPointData startPoint, NodeGUI endNode, ConnectionPointData endPoint)
{
Undo.RecordObject(this, "Add Connection");
var connectionsFromThisNode = connections
.Where(con => con.OutputNodeId == startNode.Id)
.Where(con => con.OutputPoint == startPoint)
.ToList();
if (connectionsFromThisNode.Any()) {
var alreadyExistConnection = connectionsFromThisNode[0];
DeleteConnectionById(alreadyExistConnection.Id);
}
if (!connections.ContainsConnection(startPoint, endPoint)) {
connections.Add(ConnectionGUI.CreateConnection(label, startPoint, endPoint));
}
}