74 lines
2.0 KiB
C#
74 lines
2.0 KiB
C#
using Microsoft.SharePoint;
|
|
using SPSolutions.Net.Mail;
|
|
using SPSolutions.SharePoint.Resources;
|
|
using System;
|
|
using System.Collections.Specialized;
|
|
using System.Configuration;
|
|
|
|
namespace SPSolutions.SharePoint.Net.Mail
|
|
{
|
|
public class SPListMailDefinitionProvider : MailDefinitionProvider
|
|
{
|
|
private string m_listName;
|
|
private string m_title;
|
|
private string ListName
|
|
{
|
|
get
|
|
{
|
|
return this.m_listName;
|
|
}
|
|
}
|
|
private string Title
|
|
{
|
|
get
|
|
{
|
|
return this.m_title;
|
|
}
|
|
}
|
|
public override void Initialize(string name, NameValueCollection config)
|
|
{
|
|
if (config == null)
|
|
{
|
|
throw new ArgumentNullException("config");
|
|
}
|
|
base.Initialize(name, config);
|
|
this.m_listName = config["ListName"];
|
|
if (string.IsNullOrEmpty(this.m_listName))
|
|
{
|
|
throw new ConfigurationErrorsException(ErrorsRes.ConfigurationErrorsException_NoListName);
|
|
}
|
|
config.Remove("ListName");
|
|
this.m_title = config["Title"];
|
|
config.Remove("Title");
|
|
}
|
|
public override MailDefinition RetrieveMailDefinition(string containerName)
|
|
{
|
|
return this.RetrieveMailDefinition(SPContext.Current.Web, containerName);
|
|
}
|
|
public MailDefinition RetrieveMailDefinition(SPWeb web, string containerName)
|
|
{
|
|
SPList sPList = web.Lists[this.ListName];
|
|
SPQueryBuilder sPQueryBuilder = new SPQueryBuilder();
|
|
sPQueryBuilder.Conditions.Add(new SPQueryCondition(SPQueryConditionTypes.EqualTo, "MailBodyContainerName", "Text", containerName));
|
|
SPQuery sPQuery = new SPQuery();
|
|
sPQuery.Query=(sPQueryBuilder.QueryXml);
|
|
SPListItemCollection items = sPList.GetItems(sPQuery);
|
|
if (items == null || items.Count == 0)
|
|
{
|
|
throw new SPException(string.Format("Mail Definition '{0}' could not be found.", containerName));
|
|
}
|
|
object obj = items[0]["MailSubject"];
|
|
object obj2 = items[0]["MailBody"];
|
|
if (obj == null || obj2 == null)
|
|
{
|
|
throw new SPException("Mail objects are null");
|
|
}
|
|
return new MailDefinition
|
|
{
|
|
Subject = (string)obj,
|
|
Body = (string)obj2
|
|
};
|
|
}
|
|
}
|
|
}
|