/// <summary> /// Initializes a new instance of <see cref="EventHandler"/>. /// </summary> /// <param name="implicitFilter">Whether filtering is implicit.</param> /// <param name="streamProcessors">The <see cref="IStreamProcessors" />.</param> /// <param name="filterStreamProcessors">The <see cref="IFilterStreamProcessors"/>.</param> /// <param name="filterValidationForAllTenants">The <see cref="IValidateFilterForAllTenants" /> for validating the filter definition.</param> /// <param name="streamDefinitions">The<see cref="IStreamDefinitions" />.</param> /// <param name="arguments">Connecting arguments.</param> /// <param name="filterProcessorForTenant"></param> /// <param name="eventProcessorForTenant">The event processor.</param> /// <param name="acceptRegistration">Accepts the event handler registration.</param> /// <param name="rejectRegistration">Rejects the event handler registration.</param> /// <param name="logger">Logger for logging.</param> /// <param name="executionContext">The execution context for the event handler.</param> /// <param name="cancellationToken">Cancellation token that can cancel the hierarchy.</param> public FastEventHandler( bool implicitFilter, IStreamProcessors streamProcessors, IFilterStreamProcessors filterStreamProcessors, IValidateFilterForAllTenants filterValidationForAllTenants, IStreamDefinitions streamDefinitions, EventHandlerRegistrationArguments arguments, Func <TenantId, IFilterProcessor <TypeFilterWithEventSourcePartitionDefinition> > filterProcessorForTenant, Func <TenantId, IEventProcessor> eventProcessorForTenant, Func <CancellationToken, Task> acceptRegistration, Func <Failure, CancellationToken, Task> rejectRegistration, ILogger logger, ExecutionContext executionContext, CancellationToken cancellationToken) { _implicitFilter = implicitFilter; _logger = logger; _streamProcessors = streamProcessors; _filterStreamProcessors = filterStreamProcessors; _filterValidator = filterValidationForAllTenants; _streamDefinitions = streamDefinitions; _arguments = arguments; _filterProcessorForTenant = filterProcessorForTenant; _executionContext = executionContext; _eventProcessorForTenant = eventProcessorForTenant; _acceptRegistration = acceptRegistration; _rejectRegistration = rejectRegistration; _cancellationTokenSource = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken); }
/// <summary> /// Initializes a new instance of the <see cref="EventHandlerFactory"/> class. /// </summary> /// <param name="streamProcessors">The <see cref="IStreamProcessors"/>.</param> /// <param name="filterValidator">The <see cref="IValidateFilterForAllTenants"/>.</param> /// <param name="getEventsToStreamsWriter">The <see cref="Func{TResult}"/> for getting a tenant scoped <see cref="IWriteEventsToStreams"/>.</param> /// <param name="streamDefinitions">The <see cref="IStreamDefinitions"/>.</param> /// <param name="loggerFactory">The <see cref="ILoggerFactory"/>.</param> /// <param name="filterStreamProcessors">The <see cref="IFilterStreamProcessors"/>.</param> public EventHandlerFactory( IStreamProcessors streamProcessors, IValidateFilterForAllTenants filterValidator, Func <TenantId, IWriteEventsToStreams> getEventsToStreamsWriter, IStreamDefinitions streamDefinitions, ILoggerFactory loggerFactory, IFilterStreamProcessors filterStreamProcessors) { _streamProcessors = streamProcessors; _filterValidator = filterValidator; _getEventsToStreamsWriter = getEventsToStreamsWriter; _streamDefinitions = streamDefinitions; _loggerFactory = loggerFactory; _filterStreamProcessors = filterStreamProcessors; }