コード例 #1
0
 public ServiceBusFactory(ElsaOptions elsaOptions, ILoggerFactory loggerFactory, IServiceProvider serviceProvider)
 {
     _elsaOptions      = elsaOptions;
     _loggerFactory    = loggerFactory;
     _serviceProvider  = serviceProvider;
     _handlerActivator = new DependencyInjectionHandlerActivator(serviceProvider);
 }
コード例 #2
0
    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);
    }