public CacheManagerDataBase GetCacheManagerData(string cacheManagerName)
        {
            CacheManagerSettings configSettings = this.CacheManagerSettings;
            CacheManagerDataBase data           = configSettings.CacheManagers.Get(cacheManagerName);

            if (data == null)
            {
                throw new ConfigurationErrorsException(string.Format(Resources.Culture, Resources.UnableToFindCacheManagerInstance, cacheManagerName));
            }
            return(data);
        }
        bool OverrideWithGroupPoliciesAndGenerateWmiObjectsForCacheManager(CacheManagerDataBase cacheManagerDataBase,
                                                                           bool readGroupPolicies,
                                                                           IRegistryKey machineKey,
                                                                           IRegistryKey userKey,
                                                                           bool generateWmiObjects,
                                                                           ICollection <ConfigurationSetting> wmiSettings)
        {
            if (readGroupPolicies)
            {
                IRegistryKey policyKey = machineKey != null ? machineKey : userKey;
                if (policyKey != null)
                {
                    if (policyKey.IsPolicyKey && !policyKey.GetBoolValue(PolicyValueName).Value)
                    {
                        return(false);
                    }
                    try
                    {
                        if (cacheManagerDataBase is CacheManagerData)
                        {
                            CacheManagerData cacheManagerData = (CacheManagerData)cacheManagerDataBase;

                            // cache storage is not overrideable
                            int?expirationPollFrequencyInSecondsOverride
                                = policyKey.GetIntValue(CacheManagerExpirationPollFrequencyInSecondsPropertyName);
                            int?maximumElementsInCacheBeforeScavengingOverride
                                = policyKey.GetIntValue(CacheManagerMaximumElementsInCacheBeforeScavengingPropertyName);
                            int?numberToRemoveWhenScavengingOverride
                                = policyKey.GetIntValue(CacheManagerNumberToRemoveWhenScavengingPropertyName);

                            cacheManagerData.ExpirationPollFrequencyInSeconds       = expirationPollFrequencyInSecondsOverride.Value;
                            cacheManagerData.MaximumElementsInCacheBeforeScavenging = maximumElementsInCacheBeforeScavengingOverride.Value;
                            cacheManagerData.NumberToRemoveWhenScavenging           = numberToRemoveWhenScavengingOverride.Value;
                        }
                    }
                    catch (RegistryAccessException ex)
                    {
                        LogExceptionWhileOverriding(ex);
                    }
                }
            }
            if (generateWmiObjects)
            {
                CacheManagerSettingsWmiMapper.GenerateCacheManagerWmiObjects(cacheManagerDataBase, wmiSettings);
            }

            return(true);
        }
 public static void GenerateCacheManagerWmiObjects(CacheManagerDataBase data,
                                                   ICollection <ConfigurationSetting> wmiSettings)
 {
     if (data is CacheManagerData)
     {
         CacheManagerData cacheManagerData = (CacheManagerData)data;
         wmiSettings.Add(
             new CacheManagerSetting(data.Name,
                                     cacheManagerData.CacheStorage,
                                     cacheManagerData.ExpirationPollFrequencyInSeconds,
                                     cacheManagerData.MaximumElementsInCacheBeforeScavenging,
                                     cacheManagerData.NumberToRemoveWhenScavenging));
     }
     else
     {
         wmiSettings.Add(new UnknownCacheManagerSetting(data.Name));
     }
 }