private void Dispose(bool disposed) { if (disposed) { if (_isEphemeralInstance) { _clientLibrary.DeleteInstance(_instanceName); } _clientLibrary.DeleteVertex(_vertexName); foreach (var endpt in EndpointData.InputEndpoints.Keys) { _clientLibrary.DeleteEndpoint(_vertexName, endpt); } foreach (var endpt in EndpointData.OutputEndpoints.Keys) { _clientLibrary.DeleteEndpoint(_vertexName, endpt); } EndpointData.InputEndpoints.Clear(); EndpointData.OutputEndpoints.Clear(); foreach (var kvp in ConnectionData.InputConnections) { _clientLibrary.DeleteConnectionInfo(kvp.Key.FromVertex, kvp.Key.FromEndpoint, kvp.Key.ToVertex, kvp.Key.ToEndpoint); if (kvp.Value != null) { kvp.Value.Dispose(); } } foreach (var kvp in ConnectionData.OutputConnections) { _clientLibrary.DeleteConnectionInfo(kvp.Key.FromVertex, kvp.Key.FromEndpoint, kvp.Key.ToVertex, kvp.Key.ToEndpoint); if (kvp.Value != null) { kvp.Value.Dispose(); } } ConnectionData.InputConnections.Clear(); ConnectionData.OutputConnections.Clear(); } }
protected async Task CloseAsync() { if (_isEphemeralInstance) { _clientLibrary.DeleteInstance(_instanceName); } await _clientLibrary.DeleteVertexAsync(_vertexName); foreach (var endpt in EndpointData.InputEndpoints.Keys) { _clientLibrary.DeleteEndpoint(_vertexName, endpt); } foreach (var endpt in EndpointData.OutputEndpoints.Keys) { _clientLibrary.DeleteEndpoint(_vertexName, endpt); } EndpointData.InputEndpoints.Clear(); EndpointData.OutputEndpoints.Clear(); foreach (var kvp in ConnectionData.InputConnections) { await _clientLibrary.DeleteConnectionInfoAsync(kvp.Key.FromVertex, kvp.Key.FromEndpoint, kvp.Key.ToVertex, kvp.Key.ToEndpoint); if (kvp.Value != null) { kvp.Value.Dispose(); } } foreach (var kvp in ConnectionData.OutputConnections) { await _clientLibrary.DeleteConnectionInfoAsync(kvp.Key.FromVertex, kvp.Key.FromEndpoint, kvp.Key.ToVertex, kvp.Key.ToEndpoint); if (kvp.Value != null) { kvp.Value.Dispose(); } } ConnectionData.InputConnections.Clear(); ConnectionData.OutputConnections.Clear(); }