Ejemplo n.º 1
0
        protected IBusInstance CreateBus <T, TConfigurator>(T configurator, IBusRegistrationContext context,
                                                            Action <IBusRegistrationContext, TConfigurator> configure, IEnumerable <IBusInstanceSpecification> specifications)
            where T : TConfigurator, IBusFactory
            where TConfigurator : IBusFactoryConfigurator
        {
            var loggerFactory = context.GetService <ILoggerFactory>();

            if (loggerFactory != null)
            {
                LogContext.ConfigureCurrentLogContext(loggerFactory);
            }

            context.UseHealthCheck(configurator);

            var riders = new RiderConnectable();

            configurator.ConnectBusObserver(new RiderBusObserver(riders));

            configure?.Invoke(context, configurator);

            specifications ??= Enumerable.Empty <IBusInstanceSpecification>();

            var busControl = configurator.Build(specifications);

            var instance = new TransportBusInstance(busControl, _hostConfiguration, riders);

            foreach (var specification in specifications)
            {
                specification.Configure(instance);
            }

            return(instance);
        }
Ejemplo n.º 2
0
        public IBusInstance CreateBus(IBusRegistrationContext context, IEnumerable <IBusInstanceSpecification> specifications = null)
        {
            var inMemoryTestHarness = new InMemoryTestHarness(_virtualHost, specifications);
            var riders = new RiderConnectable();

            inMemoryTestHarness.OnConfigureInMemoryBus += configurator => configurator.ConfigureEndpoints(context);
            inMemoryTestHarness.OnConfigureBus         += configurator => configurator.ConnectBusObserver(new RiderBusObserver(riders));
            return(new InMemoryTestHarnessBusInstance(inMemoryTestHarness, riders));
        }
 public InMemoryTestHarnessBusInstance(InMemoryTestHarness testHarness, RiderConnectable riders)
 {
     _riders = riders;
     Harness = testHarness;
 }
Ejemplo n.º 4
0
 public TransportBusInstance(IBusControl busControl, IHostConfiguration hostConfiguration, RiderConnectable riders)
 {
     _riders           = riders;
     BusControl        = busControl;
     HostConfiguration = hostConfiguration;
 }