public override Task InvokeAsync(IPipeContext context, CancellationToken token) { var config = ExtractConfigFromMessageType(context) ?? ExtractConfigFromStrings(context); if (config == null) { _logger.Warn("Unable to find PublisherConfiguration from message type or parameters."); throw new ArgumentNullException(nameof(config)); } var action = context.Get <Action <IPublisherConfigurationBuilder> >(PipeKey.ConfigurationAction); if (action != null) { _logger.Debug($"Custom configuration supplied. Applying."); var builder = new PublisherConfigurationBuilder(config); action(builder); config = builder.Config; } context.Properties.TryAdd(PipeKey.PublisherConfiguration, config); context.Properties.TryAdd(PipeKey.BasicPublishConfiguration, config); context.Properties.TryAdd(PipeKey.ExchangeDeclaration, config.Exchange); context.Properties.TryAdd(PipeKey.BasicProperties, config.BasicProperties); context.Properties.TryAdd(PipeKey.ReturnCallback, config.ReturnCallback); return(Next.InvokeAsync(context, token)); }
public IRequestConfigurationBuilder PublishRequest(Action <IPublisherConfigurationBuilder> publish) { var builder = new PublisherConfigurationBuilder(Config.Request); publish(builder); Config.Request = builder.Config; return(this); }