public static IServiceCollection AddOutbox(this IServiceCollection services, Action <IOutboxOptions> config) { var registry = new OutboxRegistry(); var configuration = new OutboxOptions(services, registry); config?.Invoke(configuration); services.AddTransient <IOutbox>(provider => { var repository = provider.GetRequiredService <IOutboxMessageRepository>(); return(new OutboxMessageCollector(registry, repository)); }); return(services); }
public OutboxOptions(IServiceCollection services, OutboxRegistry registry) { _services = services; _registry = registry; }