Beispiel #1
0
        public static IServiceCollection AddBroadCastService(
            this IServiceCollection services,
            BroadcastServiceOptions options,
            Action <IBroadcastSubscriptionManager>?subcriptionConfig = null,
            Action <ConnectionFactory>?connectionConfig = null)
        {
            services.TryAddSingleton <IBroadcastService>(p =>
            {
                var loggerFactory = p.GetService <ILoggerFactory>();

                var manager = new BroadcastSubscriptionManager(options, p, loggerFactory);
                subcriptionConfig?.Invoke(manager);

                var factory = new ConnectionFactory()
                {
                    HostName = options.Hostname
                };
                connectionConfig?.Invoke(factory);

                return(new RabbitBroadCastService(options, factory, manager, loggerFactory));
            });
            return(services);
        }