void CreateVirtualHostDefinedInSettings(IRabbitMqTransportSettings settings) { RabbitMqManagementClient managmentClient = new RabbitMqManagementClient(settings); if (!managmentClient.GetVHosts().Any(vh => vh.Name == settings.VirtualHost)) { var vhost = managmentClient.CreateVirtualHost(settings.VirtualHost); var rabbitMqUser = managmentClient.GetUsers().SingleOrDefault(x => x.Name == settings.Username); var permissionInfo = new PermissionInfo(rabbitMqUser, vhost); managmentClient.CreatePermission(permissionInfo); } }
public RabbitMqTransport(IRabbitMqTransportSettings settings) { var connectionString = settings.Server + settings.Port + settings.Username + settings.Password + settings.VirtualHost; CreateVirtualHostDefinedInSettings(settings); connectionFactory = connectionFactories.GetOrAdd(connectionString, x => new ConnectionFactory { HostName = settings.Server, Port = settings.Port, UserName = settings.Username, Password = settings.Password, VirtualHost = settings.VirtualHost, AutomaticRecoveryEnabled = false }); }
public RabbitMqManagementClient(IRabbitMqTransportSettings settings) : this(settings.Server, settings.Username, settings.Password) { }