Taylohtio/AlertManager/SPSolutions.SharePoint.Aler.../SPSolutions.SharePoint/SPSolutions.SharePoint.Conf.../SPProviderConfigurationList...

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);
}
}
}