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> >(); }
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); } }
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); }