示例#1
0
        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();
            }
        }
示例#2
0
        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();
        }