using System;
using System.Data;
using System.Text;
namespace Demo.Business
{
/// <summary>
/// Article 的摘要说明。
/// </summary>
public class Article
{
private int articleID;
private string title;
private string content;
private string author;
private DateTime pubDate;
private string pagePath;
private string adminID;
#region Article 实例属性
public int ArticleID
{
get
{
return articleID;
}
}
public string Title
{
get
{
return title;
}
set
{
title = value;
}
}
public string Content
{
get
{
return content;
}
set
{
content = value;
}
}
public string Author
{
get
{
return author;
}
set
{
author = value;
}
}
public DateTime PubDate
{
get
{
return pubDate;
}
}
public string PagePath
{
get
{
return pagePath;
}
set
{
pagePath = value;
}
}
public string AdminID
{
get
{
return adminID;
}
set
{
adminID = value;
}
}
#endregion
private Article()
{
}
#region Article 静态方法
public static Article CreateFromID(int articleID)
{
Article article = new Article();
string sql = "SELECT * FROM vArticle WHERE ArticleID = @ArticleID";
sql = sql.Replace("@ArticleID", articleID.ToString());
DataTable dt = BaseClass.Query(sql);
if(dt.Rows.Count <= 0)
{
return null;
}
article.articleID = int.Parse(dt.Rows[0]["ArticleID"].ToString());
article.adminID = dt.Rows[0]["AdminID"].ToString();
article.title = dt.Rows[0]["Title"].ToString();
article.content = dt.Rows[0]["Content"].ToString();
article.author = dt.Rows[0]["Author"].ToString();
article.pubDate = DateTime.Parse(dt.Rows[0]["PubDate"].ToString());
article.pagePath = dt.Rows[0]["PagePath"].ToString();
return article;
}
public static int AddArticle(string title, string content, string author, string adminID)
{
string sql = @"EXECUTE AddArticle '@AdminID', '@Title', '@Content', '@Author'";
sql = sql.Replace("@AdminID", adminID);
sql = sql.Replace("@Title", title);
sql = sql.Replace("@Content", content);
sql = sql.Replace("@Author", author);
return BaseClass.Execute(sql);
}
public static int DelArticle(int articleID)
{
string sql = @"EXECUTE DelArticle @ArticleID";
sql = sql.Replace("@ArticleID", articleID.ToString());
return BaseClass.Execute(sql);
}
public static DataTable GetArticleList(int count)
{
string sql = @"SELECT TOP "+count.ToString()+" * FROM vArticle ORDER BY PubDate DESC";
return BaseClass.Query(sql);
}
#endregion
#region Article 实例方法
public int Update()
{
string sql = @"EXECUTE UpdateArticle @ArticleID, '@Title', '@Content', '@Author'";
sql = sql.Replace("@ArticleID", this.articleID.ToString());
sql = sql.Replace("@Title", this.title);
sql = sql.Replace("@Content", this.content);
sql = sql.Replace("@Author", this.author);
return BaseClass.Execute(sql);
}
public void BiuldPage()
{
StringBuilder pageText = new StringBuilder();;
// 读模板
string modelPath = System.Configuration.ConfigurationSettings.AppSettings["ModelPath"];
System.IO.StreamReader reader = new System.IO.StreamReader(modelPath, ASCIIEncoding.GetEncoding("gb2312"));
pageText = new StringBuilder(reader.ReadToEnd());
reader.Close();
// 填充模板内容
pageText = pageText.Replace("{{@Title}}", this.Title);
pageText = pageText.Replace("{{@Author}}", this.Author);
pageText = pageText.Replace("{{@PubDate}}", this.PubDate.ToString());
pageText = pageText.Replace("{{@Content}}", this.Content);
// 保存静态页
string filePath = System.Configuration.ConfigurationSettings.AppSettings["StaticPagePath"];
string fileName = filePath + BaseClass.GetRandomString()+".shtml";
System.IO.StreamWriter writer = new System.IO.StreamWriter(fileName,true, Encoding.GetEncoding("gb2312"));
writer.Write(pageText.ToString());
writer.Close();
// 修改数据库
string sql = "EXECUTE BuildPage @ArticleID, '@PagePath'";
sql = sql.Replace("@ArticleID", this.ArticleID.ToString());
sql = sql.Replace("@PagePath", fileName);
BaseClass.Execute(sql);
}
#endregion
}
}