public DatabaseServerMessenger(
     IRuntimeState runtime, IScopeProvider scopeProvider, ISqlContext sqlContext, IProfilingLogger proflog, IGlobalSettings globalSettings,
     bool distributedEnabled, DatabaseServerMessengerOptions options)
     : base(distributedEnabled)
 {
     ScopeProvider      = scopeProvider ?? throw new ArgumentNullException(nameof(scopeProvider));
     _sqlContext        = sqlContext;
     _runtime           = runtime;
     _profilingLogger   = proflog ?? throw new ArgumentNullException(nameof(proflog));
     Logger             = proflog;
     Options            = options ?? throw new ArgumentNullException(nameof(options));
     _lastPruned        = _lastSync = DateTime.UtcNow;
     _syncIdle          = new ManualResetEvent(true);
     _distCacheFilePath = new Lazy <string>(() => GetDistCacheFilePath(globalSettings));
 }
        public DatabaseServerMessenger(ApplicationContext appContext, bool distributedEnabled, DatabaseServerMessengerOptions options)
            : base(distributedEnabled)
        {
            if (appContext == null)
            {
                throw new ArgumentNullException("appContext");
            }
            if (options == null)
            {
                throw new ArgumentNullException("options");
            }

            _appContext      = appContext;
            Options          = options;
            _lastPruned      = _lastSync = DateTime.UtcNow;
            _syncIdle        = new ManualResetEvent(true);
            _profilingLogger = appContext.ProfilingLogger;
            _logger          = appContext.ProfilingLogger.Logger;
        }