public void AddConnection(IConnectable output, IConnectable input) { if (!output.AllowMultipleOutputs) { ClearOutput(output); } if (!input.AllowMultipleInputs) { ClearInput(input); } var connect = new ConnectionData(); connect.OutputIdentifier = output.Identifier; connect.InputIdentifier = input.Identifier; Repository.Add(connect); output.OnConnectedToInput(input); input.OnConnectedFromOutput(output); }