private static void ConfigureBus( this IServiceCollectionBusConfigurator busConfigurator, string?queueName, MessagingOptions options) { if (options.Transport == MessagingTransport.InMemory) { busConfigurator.AddBus(provider => Bus.Factory.CreateUsingInMemory(cfg => { cfg.ReceiveEndpoint(e => { e.ConfigureConsumers(provider); }); })); } else { busConfigurator.AddBus(provider => Bus.Factory.CreateUsingRabbitMq(cfg => { cfg.Host(options.ServiceBus.Host, c => { c.Username(options.ServiceBus.Username); c.Password(options.ServiceBus.Password); }); cfg.ReceiveEndpoint(queueName, e => { e.ConfigureConsumers(provider); }); })); }; }
private static MessagingOptions GetOptions(this IMagicMediaServerBuilder builder) { MessagingOptions options = builder.Configuration.GetSection("MagicMedia:Messaging") .Get <MessagingOptions>(); return(options); }
public static IMagicMediaServerBuilder AddWorkerMessaging( this IMagicMediaServerBuilder builder) { MessagingOptions options = builder.GetOptions(); builder.Services.AddMassTransit(s => { s.AddWorkerConsumers(); s.ConfigureBus(options.ServiceBus?.WorkerQueueName, options); }); return(builder); }