📄 list.cs
字号:
using System;
using System.Data;
using System.Web.Mail;
using System.Data.SqlClient;
namespace Wrox.WebModules.MailingLists.Business
{
/// <summary>
/// Summary description for List.
/// </summary>
public sealed class List : Wrox.WebModules.Business.BizObject
{
private Configuration.ModuleSettings settings;
private int listID;
private string name;
private string description;
// constructors
public List()
{
settings = Configuration.ModuleConfig.GetSettings();
ResetProperties();
}
public List(int existingListID)
{
settings = Configuration.ModuleConfig.GetSettings();
listID = existingListID;
LoadFromID();
}
public List(List existingList)
{
settings = Configuration.ModuleConfig.GetSettings();
listID = existingList.ID;
LoadFromID();
}
// retrieve the values for the properties
private void LoadFromID()
{
Data.Lists lists = new Data.Lists(settings.ConnectionString);
Data.ListDetails details = lists.GetDetails(listID);
listID = details.ListID;
name = details.Name;
description = details.Description;
}
public int LoadFromID(int existingListID)
{
listID = existingListID;
LoadFromID();
return listID;
}
// reset the properties
private void ResetProperties()
{
listID = -1;
name = "";
description = "";
}
// create a new record
public int Create(string listName, string listDescription)
{
Data.Lists lists = new Data.Lists(settings.ConnectionString);
listID = lists.Add(listName, listDescription);
LoadFromID();
return listID;
}
// update the record represented by this object
public bool Update()
{
Data.Lists lists = new Data.Lists(settings.ConnectionString);
return lists.Update(listID, name, description);
}
// delete the record represented by this object
public bool Delete()
{
Data.Lists lists = new Data.Lists(settings.ConnectionString);
bool ret = lists.Delete(listID);
ResetProperties();
return ret;
}
// return the lists
public static DataSet GetLists()
{
Configuration.ModuleSettings settings = Configuration.ModuleConfig.GetSettings();
Data.Lists lists = new Data.Lists(settings.ConnectionString);
return lists.GetLists();
}
// return the child newsletters
public DataSet GetNewsletters()
{
Data.Newsletters newsletters = new Data.Newsletters(settings.ConnectionString);
return newsletters.GetNewsletters(listID);
}
// return the child subscriptions
public DataSet GetSubscriptions()
{
return GetSubscriptions(false);
}
// return the child subscriptions
public DataSet GetSubscriptions(bool activeOnly)
{
Data.Subscriptions subscriptions = new Data.Subscriptions(settings.ConnectionString);
return subscriptions.GetSubscriptions(listID, activeOnly);
}
// send out a newsletter to the list
public Newsletter SendNewsletter(string subject, string body, bool isHTML,
MailPriority priority, bool saveToDB, out int totalNewsletters)
{
Business.Newsletter newsletter = new Business.Newsletter();
newsletter.Send(listID, subject, body, isHTML, priority, saveToDB, out totalNewsletters);
return newsletter;
}
public Newsletter SendNewsletter(string subject, string body, bool isHTML,
MailPriority priority, bool saveToDB)
{
Business.Newsletter newsletter = new Business.Newsletter();
newsletter.Send(listID, subject, body, isHTML, priority, saveToDB);
return newsletter;
}
// add a new child subscription
public Subscription AddSubscription(string firstName, string lastName, string email, bool active)
{
Business.Subscription subscription = new Business.Subscription();
subscription.Create(listID, firstName, lastName, email, active);
return subscription;
}
// add a new subscription, but also send the confirmation if required
public Subscription Subscribe(string firstName, string lastName, string email,
out string subjectText, out string messageText)
{
Business.Subscription subscription = new Business.Subscription();
subscription.Subscribe(listID, firstName, lastName,
email, out subjectText, out messageText);
return subscription;
}
// remove a subscription, but also send the confirmation if required
public bool Unsubscribe(string email, out string subjectText, out string messageText)
{
return new Business.Subscription().Unsubscribe(listID, email,
out subjectText, out messageText);
}
// PROPERTIES DEFINED BELOW
public int ID
{
get { return listID; }
}
public string Name
{
get { return name; }
set { name = value; }
}
public string Description
{
get { return description; }
set { description = value; }
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -