public TargetedNotificationsProvider(RemoteSettingsInitializer initializer)
     : base(initializer.CacheableRemoteSettingsStorageHandler, initializer)
 {
     webRequestFactory            = initializer.HttpWebRequestFactory;
     notificationsParser          = initializer.TargetedNotificationsParser;
     remoteSettingsFilterProvider = initializer.FilterProvider;
 }
 public RemoteControlRemoteSettingsProvider(RemoteSettingsInitializer initializer)
     : base(initializer.VersionedRemoteSettingsStorageHandler, initializer.RemoteSettingsLogger)
 {
     remoteSettingsTelemetry      = initializer.Telemetry;
     remoteSettingsStorageHandler = initializer.VersionedRemoteSettingsStorageHandler;
     fileName                = initializer.RemoteSettingsFileName;
     remoteFileReader        = new Lazy <IRemoteFileReader>(() => initializer.RemoteFileReaderFactory.Instance());
     remoteSettingsParser    = initializer.RemoteSettingsParser;
     scopeParserFactory      = initializer.ScopeParserFactory;
     remoteSettingsValidator = initializer.RemoteSettingsValidator;
 }
示例#3
0
 /// <summary>
 /// Construct a new Remote Setting instance with values taken from the initializer.
 /// </summary>
 /// <param name="initializer">Values with which to initialize</param>
 public RemoteSettings(RemoteSettingsInitializer initializer)
 {
     initializer.FillWithDefaults();
     scopeParserFactory      = initializer.ScopeParserFactory;
     nonScopedStorageHandler = initializer.NonScopedRemoteSettingsStorageHandler;
     foreach (IScopeFilterProvider scopeFilterProvider in initializer.ScopeFilterProviders)
     {
         RegisterFilterProvider(scopeFilterProvider);
     }
     remoteSettingsProviders     = initializer.RemoteSettingsProviders.Select((Func <RemoteSettingsInitializer, IRemoteSettingsProvider> x) => x(initializer)).ToList();
     stableRemoteSettingProvider = initializer.StableRemoteSettingsProvider(initializer);
     isUpdateDisabled            = initializer.IsUpdatedDisabled;
     logger = initializer.RemoteSettingsLogger;
 }
 public TargetedNotificationsJsonStorageProvider(RemoteSettingsInitializer initializer)
 {
     cacheDirectory    = initializer.GetLocalAppDataRoot();
     cacheFileFullPath = Path.Combine(cacheDirectory, "targetnote_v1.json");
     telemetry         = initializer.TargetedNotificationsTelemetry;
     cacheLock         = new Lazy <Mutex>(delegate
     {
         try
         {
             return(new Mutex(false, "Global\\55F58BAB-BDB9-47D5-B85E-B4D8234E8FAA"));
         }
         catch (Exception exception)
         {
             string eventName = "VS/Core/TargetedNotifications/MutexFailure";
             telemetry.PostCriticalFault(eventName, "Failed to create Mutex", exception);
             return(null);
         }
     });
 }
 public TargetedNotificationsProviderBase(IRemoteSettingsStorageHandler cacheableStorageHandler, RemoteSettingsInitializer initializer)
     : base(cacheableStorageHandler, initializer.RemoteSettingsLogger)
 {
     this.cacheableStorageHandler = cacheableStorageHandler;
     useCache                       = GetValueOrDefaultFromCacheableStorage("TargetedNotifications", "UseCache", true);
     enforceCourtesy                = GetValueOrDefaultFromCacheableStorage("TargetedNotifications", "EnforceCourtesy", true);
     cacheTimeoutMs                 = GetValueOrDefaultFromCacheableStorage("TargetedNotifications", "CacheTimeoutMs", 750);
     serviceQueryLoopTimeSpan       = TimeSpan.FromMinutes(GetValueOrDefaultFromCacheableStorage("TargetedNotifications", "ServiceQueryLoopMinutes", 1440));
     liveStorageHandler             = initializer.LiveRemoteSettingsStorageHandlerFactory();
     remoteSettingsParser           = initializer.RemoteSettingsParser;
     remoteSettingsTelemetry        = initializer.Telemetry;
     targetedNotificationsTelemetry = initializer.TargetedNotificationsTelemetry;
     experimentationService         = initializer.ExperimentationService;
     telemetryNotificationService   = initializer.TelemetryNotificationService;
     notificationAndCourtesyCache   = new TargetedNotificationsCacheProvider(enforceCourtesy, this, initializer);
 }
 public TargetedNotificationsCacheProvider(bool enforceCourtesy, TargetedNotificationsProviderBase tnProvider, RemoteSettingsInitializer initializer)
 {
     this.enforceCourtesy = enforceCourtesy;
     this.tnProvider      = tnProvider;
     Storage   = initializer.TargetedNotificationsCacheStorage;
     telemetry = initializer.TargetedNotificationsTelemetry;
     responseUsesCachedRules = false;
 }
示例#7
0
 public ScopeParserFactory(RemoteSettingsInitializer initializer)
 {
     logger = initializer.RemoteSettingsLogger;
 }
 public StableRemoteSettingsProvider(RemoteSettingsInitializer initializer)
     : base(initializer.LiveRemoteSettingsStorageHandlerFactory())
 {
     stableSettingRootSubCollections = new HashSet <string>(initializer.StableSettingRootSubCollections);
 }
示例#9
0
 public LocalTestProvider(RemoteSettingsInitializer initializer)
     : base(initializer.LocalTestRemoteSettingsStorageHandler, initializer)
 {
     directories     = initializer.LocalTestDirectories.OrderBy((IDirectoryReader x) => x.Priority);
     localTestParser = initializer.LocalTestParser;
 }