Exemplo n.º 1
0
 /// <summary>
 /// Fill empty properties with default values without overriding initialized fields.
 /// </summary>
 /// <returns>Instance of the experimentation initializer</returns>
 public ExperimentationServiceInitializer FillWithDefaults()
 {
     //IL_0009: Unknown result type (might be due to invalid IL or missing references)
     //IL_0013: Expected O, but got Unknown
     if (RegistryTools == null)
     {
         RegistryTools = (IRegistryTools3)(object)new RegistryTools();
     }
     if (ExperimentationFilterProvider == null)
     {
         ExperimentationFilterProvider = new DefaultExperimentationFilterProvider(TelemetryService.DefaultSession);
     }
     if (ExperimentationTelemetry == null)
     {
         ExperimentationTelemetry = new DefaultExperimentationTelemetry(TelemetryService.DefaultSession);
     }
     if (KeyValueStorage == null)
     {
         KeyValueStorage = new DefaultRegistryKeyValueStorage(RegistryTools);
     }
     if (ShippedRemoteFileReaderFactory == null)
     {
         ShippedRemoteFileReaderFactory = new ShippedFlightsRemoteFileReaderFactory();
     }
     if (DisabledSetRemoteFileReaderFactory == null)
     {
         DisabledSetRemoteFileReaderFactory = new DisabledFlightsRemoteFileReaderFactory();
     }
     if (FlightsStreamParser == null)
     {
         FlightsStreamParser = new JsonFlightsStreamParser();
     }
     if (HttpWebRequestFactory == null)
     {
         HttpWebRequestFactory = new HttpWebRequestFactory();
     }
     if (ExperimentationOptinStatusReader == null)
     {
         ExperimentationOptinStatusReader = new DefaultExperimentationOptinStatusReader(TelemetryService.DefaultSession, (IRegistryTools)(object)RegistryTools);
     }
     if (SetFlightsProvider == null)
     {
         SetFlightsProvider = new SetFlightsProvider(KeyValueStorage, setFlightsKey);
     }
     if (FlightsProvider == null)
     {
         RemoteFlightsProvider <ShippedFlightsData> remoteFlightsProvider = new RemoteFlightsProvider <ShippedFlightsData>(KeyValueStorage, shippedFlightsKey, ShippedRemoteFileReaderFactory, FlightsStreamParser);
         FlightsProvider = new MasterFlightsProvider(new IFlightsProvider[4]
         {
             new LocalFlightsProvider(KeyValueStorage, localTestFlightsPathSuffix + enabledFlightsKey),
             remoteFlightsProvider,
             new AFDFlightsProvider(KeyValueStorage, enabledFlightsKey, FlightsStreamParser, ExperimentationFilterProvider, HttpWebRequestFactory),
             SetFlightsProvider
         }, new IFlightsProvider[2]
         {
             new LocalFlightsProvider(KeyValueStorage, localTestFlightsPathSuffix + disabledFlightsKey),
             new RemoteFlightsProvider <DisabledFlightsData>(KeyValueStorage, disabledFlightsKey, DisabledSetRemoteFileReaderFactory, FlightsStreamParser)
         }, remoteFlightsProvider, ExperimentationOptinStatusReader);
     }
     return(this);
 }
Exemplo n.º 2
0
        internal RemoteSettingsInitializer FillWithDefaults()
        {
            //IL_0045: Unknown result type (might be due to invalid IL or missing references)
            //IL_004f: Expected O, but got Unknown
            if (!UsePathPrefix.HasValue)
            {
                UsePathPrefix = true;
            }
            if (RemoteSettingsFileName == null)
            {
                RemoteSettingsFileName = "Default.json";
            }
            if (KeyValueStorage == null)
            {
                KeyValueStorage = new DefaultRegistryKeyValueStorage((IRegistryTools3)(object)new RegistryTools());
            }
            if (FilterProvider == null)
            {
                FilterProvider = new DefaultRemoteSettingsFilterProvider(TelemetryService.DefaultSession);
            }
            if (RemoteSettingsLogger == null)
            {
                RemoteSettingsLogger = new RemoteSettingsLogger(FilterProvider, RemoteSettingsStorageHandlerFactory.BuildIsLoggingEnabled(KeyValueStorage, UsePathPrefix.HasValue && UsePathPrefix.Value)());
            }
            if (ScopeParserFactory == null)
            {
                ScopeParserFactory = new ScopeParserFactory(this);
            }
            RemoteSettingsStorageHandlerFactory remoteSettingsStorageHandlerFactory = new RemoteSettingsStorageHandlerFactory(RemoteSettingsLogger);

            if (VersionedRemoteSettingsStorageHandler == null)
            {
                VersionedRemoteSettingsStorageHandler = remoteSettingsStorageHandlerFactory.BuildVersioned(KeyValueStorage, UsePathPrefix.HasValue && UsePathPrefix.Value, RemoteSettingsFileName, ScopeParserFactory);
            }
            if (CacheableRemoteSettingsStorageHandler == null)
            {
                CacheableRemoteSettingsStorageHandler = remoteSettingsStorageHandlerFactory.Build(KeyValueStorage, UsePathPrefix.HasValue && UsePathPrefix.Value, FilterProvider, ScopeParserFactory);
            }
            if (LocalTestRemoteSettingsStorageHandler == null)
            {
                LocalTestRemoteSettingsStorageHandler = remoteSettingsStorageHandlerFactory.Build(KeyValueStorage, UsePathPrefix.HasValue && UsePathPrefix.Value, "LocalTest", ScopeParserFactory);
            }
            if (LiveRemoteSettingsStorageHandlerFactory == null)
            {
                LiveRemoteSettingsStorageHandlerFactory = (() => remoteSettingsStorageHandlerFactory.Build(new MemoryKeyValueStorage(), false, string.Empty, ScopeParserFactory));
            }
            if (NonScopedRemoteSettingsStorageHandler == null && NonScopedSettingsKeyValueStorage != null)
            {
                NonScopedRemoteSettingsStorageHandler = remoteSettingsStorageHandlerFactory.Build(NonScopedSettingsKeyValueStorage, false, string.Empty, ScopeParserFactory);
            }
            if (IsUpdatedDisabled == null)
            {
                IsUpdatedDisabled = RemoteSettingsStorageHandlerFactory.BuildIsUpdateDisabled(KeyValueStorage, UsePathPrefix.HasValue && UsePathPrefix.Value);
            }
            if (RemoteFileReaderFactory == null)
            {
                RemoteFileReaderFactory = new RemoteSettingsRemoteFileReaderFactory(RemoteSettingsFileName);
            }
            if (RemoteSettingsValidator == null)
            {
                RemoteSettingsValidator = new RemoteSettingsValidator(new CycleDetection(), VersionedRemoteSettingsStorageHandler);
            }
            if (RemoteSettingsParser == null)
            {
                RemoteSettingsParser = new RemoteSettingsParser(RemoteSettingsValidator);
            }
            if (TargetedNotificationsParser == null)
            {
                TargetedNotificationsParser = new TargetedNotificationsParser();
            }
            if (ExperimentationService == null)
            {
                ExperimentationService = Coding4Fun.VisualStudio.Experimentation.ExperimentationService.Default;
            }
            if (ExperimentationService == null)
            {
                ExperimentationService = Coding4Fun.VisualStudio.Experimentation.ExperimentationService.Default;
            }
            if (TelemetryNotificationService == null)
            {
                TelemetryNotificationService = Coding4Fun.VisualStudio.Telemetry.Notification.TelemetryNotificationService.Default;
            }
            if (Telemetry == null)
            {
                Telemetry = new DefaultRemoteSettingsTelemetry(TelemetryService.DefaultSession);
            }
            if (TargetedNotificationsTelemetry == null)
            {
                TargetedNotificationsTelemetry = new DefaultTargetedNotificationsTelemetry(TelemetryService.DefaultSession);
            }
            if (TargetedNotificationsCacheStorage == null)
            {
                TargetedNotificationsCacheStorage = new TargetedNotificationsJsonStorageProvider(this);
            }
            if (HttpWebRequestFactory == null)
            {
                HttpWebRequestFactory = new HttpWebRequestFactory();
            }
            if (ScopeFilterProviders == null)
            {
                new ProcessInformationProvider();
                ScopeFilterProviders = new List <IScopeFilterProvider>
                {
                    new FlightScopeFilterProvider(ExperimentationService),
                    new InternalScopeFilterProvider(TelemetryService.DefaultSession),
                    new VersionScopeFilterProvider(FilterProvider),
                    new ExeNameScopeFilterProvider(FilterProvider),
                    new ScopeScopeFilterProvider(VersionedRemoteSettingsStorageHandler, ScopeParserFactory)
                };
            }
            if (RemoteSettingsProviders == null)
            {
                RemoteSettingsProviders = new List <Func <RemoteSettingsInitializer, IRemoteSettingsProvider> >
                {
                    (RemoteSettingsInitializer remoteSettingsInitializer) => new LocalTestProvider(remoteSettingsInitializer),
                    (RemoteSettingsInitializer remoteSettingsInitializer) => new TargetedNotificationsProvider(remoteSettingsInitializer),
                    (RemoteSettingsInitializer remoteSettingsInitializer) => new RemoteControlRemoteSettingsProvider(remoteSettingsInitializer)
                };
            }
            if (LocalTestDirectories == null)
            {
                string rootPath = Path.Combine(GetLocalAppDataRoot(), "LocalTest");
                LocalTestDirectories = new List <IDirectoryReader>
                {
                    new DirectoryReader(rootPath, "PersistentActions", false, 0, RemoteSettingsLogger),
                    new DirectoryReader(rootPath, "OneTimeActions", true, 10, RemoteSettingsLogger)
                };
            }
            if (LocalTestParser == null)
            {
                LocalTestParser = new LocalTestParser();
            }
            if (StableRemoteSettingsProvider == null)
            {
                StableRemoteSettingsProvider = ((RemoteSettingsInitializer remoteSettingsInitializer) => new StableRemoteSettingsProvider(remoteSettingsInitializer));
            }
            if (StableSettingRootSubCollections == null)
            {
                StableSettingRootSubCollections = Enumerable.Empty <string>();
            }
            return(this);
        }