//Internal for unit tests internal static bool ApplyFilter(SettingsGroupFilter filter, Type type) { if (filter == 0) { return(true); } var providerClass = SettingsClassMetaDataReader.GetSettingsProvider(type); if ((filter & SettingsGroupFilter.SupportEnterpriseStorage) == SettingsGroupFilter.SupportEnterpriseStorage && providerClass == typeof(StandardSettingsProvider)) { return(true); } if ((filter & SettingsGroupFilter.LocalStorage) == SettingsGroupFilter.LocalStorage && ApplicationSettingsHelper.IsLocallyStored(type)) { return(true); } if ((filter & SettingsGroupFilter.SupportsEditingOfSharedProfile) == SettingsGroupFilter.SupportsEditingOfSharedProfile && typeof(ISharedApplicationSettingsProvider).IsAssignableFrom(providerClass)) { return(true); } return(false); }
/// <summary> /// Returns a list of <see cref="SettingsGroupDescriptor"/> objects describing each settings class /// that exists in the installed plugin base, applying the specified filter. /// </summary> /// <remarks> /// This method is thread-safe. /// </remarks> public static List <SettingsGroupDescriptor> ListInstalledSettingsGroups(SettingsGroupFilter filter) { return(ListInstalledSettingsGroups(type => ApplyFilter(filter, type))); }