64 lines
2.2 KiB
C#
64 lines
2.2 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|