using Microsoft.SharePoint; using SPSolutions.SharePoint.Resources; using System; using System.Configuration; namespace SPSolutions.SharePoint.Configuration.Providers { public class SPProviderConfigurationListHandler : ISPConfigurationListHandler { private bool m_useActiveProviders; public SPProviderConfigurationListHandler() : this(true) { } public SPProviderConfigurationListHandler(bool useActiveProviders) { this.m_useActiveProviders = useActiveProviders; } public SPConfigurationList GetConfigurationList(SPList spList) { SPProviderConfigurationList sPProviderConfigurationList = new SPProviderConfigurationList(); string text = null; SPListItemCollection sPListItemCollection; if (this.m_useActiveProviders) { sPListItemCollection = this.GetActiveProviders(spList); } else { sPListItemCollection = spList.Items; } foreach (SPListItem sPListItem in sPListItemCollection) { string arg_4E_0 = (string)sPListItem[ConfigRes.ColumnName_ProviderConfiguration_Title]; string text2 = (string)sPListItem[ConfigRes.ColumnName_ProviderConfiguration_ProviderName]; string type = (string)sPListItem[ConfigRes.ColumnName_ProviderConfiguration_ProviderType]; bool flag = Convert.ToBoolean(sPListItem[ConfigRes.ColumnName_ProviderConfiguration_IsDefaultProvider]); ProviderSettings providerSettings = new ProviderSettings(text2, type); foreach (SPField sPField in sPListItem.Fields) { object obj = sPListItem[sPField.Id]; if (obj is string) { providerSettings.Parameters.Add(sPField.InternalName, obj.ToString()); } } sPProviderConfigurationList.Providers.Add(providerSettings); if (flag || string.IsNullOrEmpty(text)) { text = text2; } } sPProviderConfigurationList.DefaultProvider = text; return sPProviderConfigurationList; } private SPListItemCollection GetActiveProviders(SPList list) { SPQueryBuilder sPQueryBuilder = new SPQueryBuilder(); sPQueryBuilder.Conditions.Add(new SPQueryCondition(SPQueryConditionTypes.EqualTo, "IsActive", "Boolean", "1")); SPQuery sPQuery = new SPQuery(); sPQuery.Query=(sPQueryBuilder.QueryXml); return list.GetItems(sPQuery); } } }