public AudioReopenSubscriptionService(ILabelingModuleConfiguration labelingModuleConfiguration,
                                              IKeepAliveConfiguration keepAliveConfiguration,
                                              ILogger <AudioReopenSubscriptionService> logger,
                                              ILifetimeScopeExecutor lifetimeScopeExecutor)
        {
            this.logger = logger;
            this.lifetimeScopeExecutor = lifetimeScopeExecutor;

            var cacheOptions = new SlidingExpirationCacheOptions <KeyValuePair <long, LabelingType>, long>()
            {
                ExpirationAsyncCallback = SubscriptionExpirationCallback,
                ExpirationScanFrequency = labelingModuleConfiguration.AudioReopen.ExpirationScanFrequency,
                RefreshFrequency        = keepAliveConfiguration.Server.CacheRefreshFrequency,
                EntrySlidingExpiration  = labelingModuleConfiguration.AudioReopen.AudioSlidingExpiration
            };

            subscribers = new SlidingExpirationCache <KeyValuePair <long, LabelingType>, long>(logger, cacheOptions);
        }
 public SubscriptionActionsServiceProxy(ILifetimeScopeExecutor lifetimeScopeExecutor)
 {
     this.lifetimeScopeExecutor = lifetimeScopeExecutor;
 }
 public ExaminationIntegrationActionsServiceProxy(ILifetimeScopeExecutor lifetimeScopeExecutor)
 {
     this.lifetimeScopeExecutor = lifetimeScopeExecutor;
 }