public RefreshableDataStoreProvider(
     UnlaunchRestWrapper restWrapper,
     UnlaunchGenericRestWrapper s3BucketClient,
     CountdownEvent initialDownloadDoneEvent,
     AtomicBoolean downloadSuccessful,
     TimeSpan dataStoreRefreshDelay)
 {
     _restWrapper              = restWrapper;
     _s3BucketClient           = s3BucketClient;
     _dataStoreRefreshDelay    = dataStoreRefreshDelay;
     _initialDownloadDoneEvent = initialDownloadDoneEvent;
     _downloadSuccessful       = downloadSuccessful;
 }
        public UnlaunchHttpDataStore(
            UnlaunchRestWrapper restWrapper,
            UnlaunchGenericRestWrapper s3BucketClient,
            CountdownEvent intInitialDownloadDoneEvent,
            AtomicBoolean downloadSuccessful,
            TimeSpan dataStoreRefreshDelay)
        {
            _restWrapper              = restWrapper;
            _s3BucketClient           = s3BucketClient;
            _initialDownloadDoneEvent = intInitialDownloadDoneEvent;
            _downloadSuccessful       = downloadSuccessful;
            _flagMapReference         = new AtomicReference <IDictionary <string, FeatureFlag> >(new Dictionary <string, FeatureFlag>());

            _timer = new Timer((e) => { CreateTask(); }, null, TimeSpan.Zero, dataStoreRefreshDelay);
        }