private IMessageEnvelope ProcessConnect(IDictionary <string, object> metadata, ConnectRequest request) { Exception error = null; ConnectResponse response; try { connector.OpenConnector(request.RemoteEndPoint, request.DatabaseName); if (request.AutoCommit) { connector.SetAutoCommit(request.AutoCommit); } connector.SetIgnoreIdentifiersCase(request.IgnoreIdentifiersCase); connector.SetParameterStyle(request.ParameterStyle); var encryptionData = connector.GetEncryptionData(); var serverVersion = connector.Database.Version.ToString(2); response = new ConnectResponse(true, serverVersion, encryptionData != null, encryptionData); } catch (Exception ex) { // TODO: Log the error ... error = ex; response = new ConnectResponse(false, null); } var envelope = connector.CreateEnvelope(metadata, response); if (error != null) { envelope.SetError(error); } return(connector.CreateEnvelope(metadata, response)); }