public EventContractQueryConfigurationRepository(
     IContractQueryRepository queryRepo,
     ISubscriberContractRepository contractRepo,
     IContractQueryParameterRepository parameterRepo)
 {
     QueryRepo     = queryRepo;
     ContractRepo  = contractRepo;
     ParameterRepo = parameterRepo;
 }
        public static async Task<ContractQueryConfiguration> LoadContractQueryConfiguration(
            this IContractQueryRepository contractQueryRepository,
            long subscriberId,
            long eventHandlerId,
            ISubscriberOwnedRepository<ISubscriberContractDto> subscriberContractsRepository,
            IContractQueryParameterRepository contractQueryParameterRepository)
        {
            var queryConfig = await contractQueryRepository.GetAsync(eventHandlerId).ConfigureAwait(false);
            var contractConfig = await subscriberContractsRepository.GetAsync(subscriberId, queryConfig.ContractId).ConfigureAwait(false);
            var queryParameters = await contractQueryParameterRepository.GetManyAsync(queryConfig.Id).ConfigureAwait(false);

            return queryConfig.ToContractQueryConfiguration(contractConfig, queryParameters);
        }
        public EventProcessingConfigurationRepository(
            ISubscriberRepository subscriberRepository,
            ISubscriberContractRepository subscriberContractRepository,
            IEventSubscriptionRepository eventSubscriptionRepository,
            IEventSubscriptionAddressRepository eventSubscriptionAddressRepository,
            IEventHandlerRepository eventHandlerRepository,
            IParameterConditionRepository parameterConditionRepository,
            IEventSubscriptionStateRepository eventSubscriptionStateRepository,
            IContractQueryRepository contractQueryRepository,
            IContractQueryParameterRepository contractQueryParameterRepository,
            IEventAggregatorRepository eventAggregatorRepository,
            ISubscriberQueueRepository subscriberQueueRepository,
            ISubscriberSearchIndexRepository subscriberSearchIndexRepository,
            IEventHandlerHistoryRepository eventHandlerHistoryRepository,
            IEventRuleRepository eventRuleRepository,
            ISubscriberStorageRepository subscriberStorageRepository
            )
        {
            Subscribers                = subscriberRepository;
            SubscriberContracts        = subscriberContractRepository;
            EventSubscriptions         = eventSubscriptionRepository;
            EventSubscriptionAddresses = eventSubscriptionAddressRepository;
            EventHandlers              = eventHandlerRepository;
            ParameterConditions        = parameterConditionRepository;
            EventSubscriptionStates    = eventSubscriptionStateRepository;
            ContractQueries            = contractQueryRepository;
            ContractQueryParameters    = contractQueryParameterRepository;
            EventAggregators           = eventAggregatorRepository;
            SubscriberQueues           = subscriberQueueRepository;
            SubscriberSearchIndexes    = subscriberSearchIndexRepository;
            EventHandlerHistoryRepo    = eventHandlerHistoryRepository;
            EventRules        = eventRuleRepository;
            SubscriberStorage = subscriberStorageRepository;

            EventContractQueries = new EventContractQueryConfigurationRepository(ContractQueries, SubscriberContracts, ContractQueryParameters);
        }