Exemplo n.º 1
0
        public static void AddSignalRHubConsumers <THub>(this IServiceCollectionConfigurator configurator,
                                                         Action <IHubLifetimeManagerOptions <THub> > configureHubLifetimeOptions = null)
            where THub : Hub
        {
            var options = new HubLifetimeManagerOptions <THub>();

            configureHubLifetimeOptions?.Invoke(options);

            configurator.Collection.AddSingleton(options);
            configurator.Collection.AddSingleton(GetLifetimeManager <THub>);

            configurator.AddRequestClient <GroupManagement <THub> >(options.RequestTimeout);

            //TODO: check if use options.UseMessageData
            // Add Registrations for Regular Consumers
            configurator.AddConsumer <AllConsumer <THub> >();
            configurator.AddConsumer <ConnectionConsumer <THub> >();
            configurator.AddConsumer <GroupConsumer <THub> >();
            configurator.AddConsumer <GroupManagementConsumer <THub> >();
            configurator.AddConsumer <UserConsumer <THub> >();

            // Add Registrations for Message Data Consumers
            configurator.AddConsumer <AllMessageDataConsumer <THub> >();
            configurator.AddConsumer <ConnectionMessageDataConsumer <THub> >();
            configurator.AddConsumer <GroupMessageDataConsumer <THub> >();
            configurator.AddConsumer <GroupManagementConsumer <THub> >();
            configurator.AddConsumer <UserMessageDataConsumer <THub> >();
        }
Exemplo n.º 2
0
        public static void AddSignalRHubConsumers <THub>(this IServiceCollectionConfigurator configurator)
            where THub : Hub
        {
            configurator.AddRequestClient <GroupManagement <THub> >(TimeSpan.FromSeconds(10));

            var consumers = HubConsumersCache.GetOrAdd <THub>();

            foreach (var consumer in consumers)
            {
                configurator.AddConsumer(consumer);
            }
        }
Exemplo n.º 3
0
        public void ConfigureMassTransit(IServiceCollectionConfigurator configurator, IServiceCollection services)
        {
            services.AddScoped <AcceptOrderActivity>();

            configurator.AddConsumersFromNamespaceContaining <SubmitOrderConsumer>();
            configurator.AddActivitiesFromNamespaceContaining <AllocateInventoryActivity>();
            configurator.AddConsumersFromNamespaceContaining <RoutingSlipBatchEventConsumer>();

            configurator.AddSagaStateMachine <OrderStateMachine, OrderState>(typeof(OrderStateMachineDefinition))
            .MongoDbRepository(r =>
            {
                r.Connection   = "mongodb://mongo";
                r.DatabaseName = "orders";
            });

            configurator.AddRequestClient <AllocateInventory>();
        }
        public static void AddSignalRHub <THub>(this IServiceCollectionConfigurator configurator,
                                                Action <IHubLifetimeManagerOptions <THub> > configureHubLifetimeOptions = null)
            where THub : Hub
        {
            var options = new HubLifetimeManagerOptions <THub>();

            configureHubLifetimeOptions?.Invoke(options);

            configurator.Collection.TryAddSingleton <IHubLifetimeScopeProvider, DependencyInjectionHubLifetimeScopeProvider>();

            configurator.Collection.AddSingleton(provider => GetMassTransitHubLifetimeManager(provider, options));
            configurator.Collection.AddSingleton <HubLifetimeManager <THub> >(sp => sp.GetRequiredService <MassTransitHubLifetimeManager <THub> >());

            configurator.AddRequestClient <GroupManagement <THub> >(options.RequestTimeout);

            RegisterConsumers <THub>(configurator);
        }