📄 topic.cs
字号:
using System;
using System.Data;
using System.Data.SqlClient;
using System.Web;
namespace Wrox.WebModules.Forums.Business
{
/// <summary>
/// Summary description for Topic.
/// </summary>
public sealed class Topic : Wrox.WebModules.Business.BizObject
{
private Configuration.ModuleSettings settings;
private int forumID;
private int topicID;
private string key;
private string subject;
private string message;
private DateTime addedDate;
private int replies;
private DateTime lastReplyDate;
private DateTime lastPostDate;
private int memberID;
private string memberIP;
// constructors
public Topic()
{
settings = Configuration.ModuleConfig.GetSettings();
ResetProperties();
}
public Topic(int existingTopicID)
{
settings = Configuration.ModuleConfig.GetSettings();
topicID = existingTopicID;
LoadFromID();
}
public Topic(Topic existingTopic)
{
settings = Configuration.ModuleConfig.GetSettings();
topicID = existingTopic.ID;
LoadFromID();
}
public Topic(string existingTopicKey)
{
settings = Configuration.ModuleConfig.GetSettings();
LoadFromKey(existingTopicKey);
}
// retrieve the values for the properties
private void LoadFromID()
{
Data.Topics topics = new Data.Topics(settings.ConnectionString);
Data.TopicDetails details = topics.GetDetails(topicID);
topicID = details.TopicID;
forumID = details.ForumID;
key = details.TopicKey;
subject = details.Subject;
message = details.Message;
addedDate = details.AddedDate;
replies = details.Replies;
lastReplyDate = details.LastReplyDate;
lastPostDate = details.LastPostDate;
memberID = details.MemberID;
memberIP = details.MemberIP;
}
public int LoadFromID(int existingTopicID)
{
topicID = existingTopicID;
LoadFromID();
return topicID;
}
public int LoadFromKey(string existingTopicKey)
{
Data.Topics topics = new Data.Topics(settings.ConnectionString);
topicID = topics.GetTopicID(existingTopicKey);
if (topicID == -1)
ResetProperties();
else
LoadFromID();
return topicID;
}
// reset the properties
private void ResetProperties()
{
topicID = -1;
forumID = -1;
key = "";
subject = "";
message = "";
addedDate = new DateTime();
replies = 0;
lastReplyDate = new DateTime();
lastPostDate = new DateTime();
memberID = -1;
memberIP = "";
}
// create a new record
public int Create(int topicForumID, string topicKey, string topicSubject,
string topicMessage, int topicMemberID)
{
Data.Topics topics = new Data.Topics(settings.ConnectionString);
topicID = topics.Add(topicForumID, topicKey, topicSubject,
topicMessage, topicMemberID, HttpContext.Current.Request.UserHostAddress);
LoadFromID();
return topicID;
}
// update the record represented by this object
public bool Update()
{
Data.Topics topics = new Data.Topics(settings.ConnectionString);
return topics.Update(topicID, key, subject, message);
}
// delete the record represented by this object
public bool Delete()
{
Data.Topics topics = new Data.Topics(settings.ConnectionString);
bool ret = topics.Delete(topicID);
ResetProperties();
return ret;
}
// return the child replies
public DataSet GetReplies()
{
Data.Replies replies = new Data.Replies(settings.ConnectionString);
return replies.GetReplies(topicID);
}
public DataSet GetReplies(int pageNumber)
{
Data.Replies replies = new Data.Replies(settings.ConnectionString);
return replies.GetReplies(topicID, pageNumber, settings.RepliesPerPage);
}
// add a new child reply
public Reply AddReply(string replyMessage, int replyMemberID)
{
Business.Reply reply = new Business.Reply();
reply.Create(forumID, topicID, replyMessage, replyMemberID);
return reply;
}
// PROPERTIES DEFINED BELOW
public int ForumID
{
get { return forumID; }
}
public Business.Forum Forum
{
get { return new Forum(forumID); }
}
public int MemberID
{
get { return memberID; }
}
public Business.Member Member
{
get { return new Member(memberID); }
}
public int ID
{
get { return topicID; }
}
public string Key
{
get { return key; }
set { key = value; }
}
public string Subject
{
get { return subject; }
set { subject = value; }
}
public string Message
{
get { return message; }
set { message = value; }
}
public DateTime AddedDate
{
get { return addedDate; }
}
public int Replies
{
get { return replies; }
}
public DateTime LastReplyDate
{
get { return lastReplyDate; }
}
public DateTime LastPostDate
{
get { return lastPostDate; }
}
public string MemberIP
{
get { return memberIP; }
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -