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));
}