public TargetIndexingConfig(IConfigProvider configProvider)
        {
            _serverConnectionString = configProvider.AssertConfigValueIsPresent <string>(SERVER_CONNECTION_STRING_KEY);
            _index     = configProvider.AssertConfigValueIsPresent <string>(INDEX_KEY);
            _type      = configProvider.AssertConfigValueIsPresent <string>(TYPE_KEY);
            _batchSize = configProvider.AssertConfigValueIsPresent <int>(BATCH_SIZE_KEY);

            _suspendIndexRefreshDuringIndex    = configProvider.AssertConfigValueIsPresent <bool>(SUSPEND_INDEX_REFRESH_KEY);
            _reInstateIndexRefreshAfterIndex   = configProvider.AssertConfigValueIsPresent <bool>(REINSTATE_INDEX_REFRESH_KEY);
            _indexThrottlingTimePeriod         = configProvider.AssertConfigValueIsPresent <TimeSpan>(INDEX_THROTTLE_TIME_PERIOD_KEY);
            _maxIndexesPerThrottlingTimePeriod = configProvider.AssertConfigValueIsPresent <int>(MAX_INDEXES_PER_THROTTLE_KEY);
        }
        public SourceScrollConfig(IConfigProvider configProvider)
        {
            _serverConnectionString = configProvider.AssertConfigValueIsPresent <string>(SERVER_CONNECTION_STRING_KEY);
            _index     = configProvider.AssertConfigValueIsPresent <string>(INDEX_KEY);
            _type      = configProvider.AssertConfigValueIsPresent <string>(TYPE_KEY);
            _batchSize = configProvider.AssertConfigValueIsPresent <int>(BATCH_SIZE_KEY);

            _filterDoc = configProvider.AssertConfigValueIsPresent <JObject>(FILTER_DOC_KEY, new JObject());
            _scrollThrottlingTimePeriod        = configProvider.AssertConfigValueIsPresent <TimeSpan>(SCROLL_THROTTLE_TIME_PERIOD_KEY);
            _maxScrollsPerThrottlingTimePeriod = configProvider.AssertConfigValueIsPresent <int>(MAX_SCROLLS_PER_THROTTLE_KEY);
        }