/// <summary> /// Configures the publications. /// </summary> /// <param name="configure">A delegate to a method to use to configure publications.</param> /// <returns> /// The current <see cref="MessagingBusBuilder"/>. /// </returns> /// <exception cref="ArgumentNullException"> /// <paramref name="configure"/> is <see langword="null"/>. /// </exception> public MessagingBusBuilder Publications(Action <PublicationsBuilder> configure) { if (configure == null) { throw new ArgumentNullException(nameof(configure)); } if (PublicationsBuilder == null) { PublicationsBuilder = new PublicationsBuilder(this); } configure(PublicationsBuilder); return(this); }
/// <summary> /// Creates a new instance of <see cref="IMessagePublisher"/>. /// </summary> /// <returns> /// The created instance of <see cref="IMessagePublisher"/> /// </returns> public IMessagePublisher BuildPublisher() { IMessagingConfig config = MessagingConfig.Build(); config.Validate(); ILoggerFactory loggerFactory = ServiceResolver.ResolveService <ILoggerFactory>(); JustSayingBus bus = CreateBus(config, loggerFactory); IAwsClientFactoryProxy proxy = CreateFactoryProxy(); if (PublicationsBuilder != null) { PublicationsBuilder.Configure(bus, proxy, loggerFactory); } return(bus); }
/// <summary> /// Creates a new instance of <see cref="IMessagePublisher"/>. /// </summary> /// <returns> /// The created instance of <see cref="IMessagePublisher"/> /// </returns> public IMessagePublisher BuildPublisher() { IMessagingConfig config = CreateConfig(); config.Validate(); ILoggerFactory loggerFactory = ServicesBuilder?.LoggerFactory?.Invoke() ?? ServiceResolver.ResolveService <ILoggerFactory>(); JustSayingBus publisher = CreateBus(config, loggerFactory); JustSayingFluently fluent = CreateFluent(publisher, loggerFactory); if (PublicationsBuilder != null) { PublicationsBuilder.Configure(fluent); } return(publisher); }