public static void ConfigureBus(this IServiceCollection services)
{
string connectstr = "Endpoint=sb://...";
string pubtopic = "balance";
string subtopic = "playmat";
string subscription = "playmat.listener";
var azureServiceBus = Bus.Factory.CreateUsingAzureServiceBus(busconfig =>
{
// I intend to use this for publish message
busconfig.Message<Balance>(configTopology =>
{
configTopology.SetEntityName(pubtopic);
});
busconfig.Host(connectstr);
//consume subscriptions from other topics
busconfig.SubscriptionEndpoint(subscription, subtopic, configurator =>
{
configurator.Consumer<TransferConsumer>();
});
});
// Add MassTransit
services.AddMassTransit(config =>
{
config.AddBus(provider => azureServiceBus);
});
services.AddSingleton<IHostedService, BusHostedService>();
services.AddSingleton<IPublishEndpoint>(azureServiceBus);
services.AddSingleton<IBus>(azureServiceBus);
}