private IConnectionFactory GetConnectionFactory()
{
// prepare connection factory
var connectionFactory = new ConnectionFactory
{
HostName = _config.Hostname,
UserName = _config.Username,
Password = _config.Password,
AutomaticRecoveryEnabled = true,
NetworkRecoveryInterval = TimeSpan.FromSeconds(2)
};
// setup heartbeat if needed
if (_config.Heartbeat > 0)
connectionFactory.RequestedHeartbeat = _config.Heartbeat;
// only set, if has value, otherwise leave default
if (_config.Port > 0) connectionFactory.Port = _config.Port;
if (!string.IsNullOrEmpty(_config.VHost)) connectionFactory.VirtualHost = _config.VHost;
if (_config.Protocol != null) connectionFactory.Protocol = _config.Protocol;
// return factory
return connectionFactory;
}