public ServiceBusFactory(ElsaOptions elsaOptions, ILoggerFactory loggerFactory, IServiceProvider serviceProvider) { _elsaOptions = elsaOptions; _loggerFactory = loggerFactory; _serviceProvider = serviceProvider; _handlerActivator = new DependencyInjectionHandlerActivator(serviceProvider); }
protected override Task ExecuteAsync(CancellationToken stoppingToken) { var handlerActivator = new DependencyInjectionHandlerActivator(_serviceProvider); var configurer = Configure.With(handlerActivator); configurer .Serialization(serializer => serializer.UseNewtonsoftJson(DefaultContentSerializer.CreateDefaultJsonSerializationSettings())) .Transport(transport => transport.UseAzureServiceBus(_configuration.GetConnectionString("AzureServiceBus"), "error")) .Routing(r => { r.AddTransportMessageForwarder(transportMessage => { var returnAddress = transportMessage.Headers[Headers.SourceQueue]; if (returnAddress.Contains("workflow-management-events")) { return(Task.FromResult(ForwardAction.Ignore())); } return(Task.FromResult(ForwardAction.ForwardTo(returnAddress))); }); }); var bus = configurer.Start(); return(Task.CompletedTask); }