using Microsoft.Extensions.DependencyInjection; using Pole.Core; using Pole.Core.Processor; using Pole.EventBus; using Pole.EventBus.Processor; using Pole.EventBus.Processor.Server; using Pole.EventBus.UnitOfWork; using System; using System.Collections.Generic; using System.Text; namespace Microsoft.Extensions.DependencyInjection { public static class PoleEventBusStartupConfigExtensions { public static StartupConfig AddEventBus(this StartupConfig startupOption, Action config = null) { Action defaultConfig = option => { }; var finalConfig = config ?? defaultConfig; startupOption.Services.Configure(finalConfig); startupOption.Services.AddSingleton(); startupOption.Services.AddScoped(); startupOption.Services.AddSingleton(); startupOption.Services.AddSingleton(); startupOption.Services.AddSingleton(); startupOption.Services.AddHostedService(); startupOption.Services.AddScoped(); startupOption.Services.AddSingleton(); return startupOption; } } }