📄 news.cs
字号:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
/// <summary>
/// 新闻实体
/// </summary>
public class eNews
{
#region 属性
public int NewsID;
public int NewsUserID;
public string NewsTitle;
public string NewsContent;
public DateTime NewsCreateDate;
public bool NewsChecked;
public int NewsCheckUserID;
public bool NewsImage;
public string NewsImageURL;
public string NewsFileURL;
public int NewsItemID;
public bool NewsHomeNews;
public int NewsClicked;
public bool NewsRecommend;
public string NewsKeyword;
#endregion
//私有成员变量
NewsDataTableAdapters.NewsArticleTableAdapter tbaNews;
/// <summary>
/// 默认构造函数
/// </summary>
public eNews()
{
NewsID = -1;
NewsUserID = -1;
NewsTitle = null;
NewsContent = null;
NewsCreateDate = DateTime.MinValue;
NewsChecked = false;
NewsCheckUserID = -1;
NewsImage = false;
NewsImageURL = null;
NewsFileURL = null;
NewsItemID = -1;
NewsHomeNews = false;
NewsClicked = -1;
NewsRecommend = false;
NewsKeyword = null;
tbaNews = new NewsDataTableAdapters.NewsArticleTableAdapter();
}
/// <summary>
/// 以ID为参数的构造函数
/// </summary>
public eNews(int pintNewsID)
{
tbaNews = new NewsDataTableAdapters.NewsArticleTableAdapter();
GetNewsInfo(pintNewsID);
}
/// <summary>
/// 根据指定ID获取新闻内容
/// </summary>
public void GetNewsInfo(int pintNewsID)
{
DataTable dtTemp = tbaNews.GetNewsInfo(pintNewsID);
NewsID = pintNewsID;
if (NewsUserID == -1)
NewsUserID = Convert.ToInt32(dtTemp.Rows[0]["NewsUserID"]);
if (NewsTitle == null)
NewsTitle = dtTemp.Rows[0]["NewsTitle"].ToString();
if (NewsContent == null)
NewsContent = dtTemp.Rows[0]["NewsContent"].ToString();
NewsCreateDate = Convert.ToDateTime(dtTemp.Rows[0]["NewsCreateDate"]);
if (!NewsChecked)
NewsChecked = Convert.ToBoolean(dtTemp.Rows[0]["NewsChecked"]);
if (NewsCheckUserID == -1)
if (Convert.IsDBNull(dtTemp.Rows[0]["NewsCheckUserID"]))
NewsCheckUserID = -1;
else
NewsCheckUserID = Convert.ToInt32(dtTemp.Rows[0]["NewsCheckUserID"]);
if (!NewsImage)
NewsImage = Convert.ToBoolean(dtTemp.Rows[0]["NewsImage"]);
if (NewsImageURL == null)
if (Convert.IsDBNull(dtTemp.Rows[0]["NewsImageURL"]))
NewsImageURL = null;
else
NewsImageURL = dtTemp.Rows[0]["NewsImageURL"].ToString();
if (Convert.IsDBNull(dtTemp.Rows[0]["NewsFileURL"]))
NewsFileURL = null;
else
NewsFileURL = dtTemp.Rows[0]["NewsFileURL"].ToString();
if (NewsItemID == -1)
if (Convert.IsDBNull(dtTemp.Rows[0]["NewsItemID"]))
NewsItemID = -1;
else
NewsItemID = Convert.ToInt32(dtTemp.Rows[0]["NewsItemID"]);
if (!NewsHomeNews)
NewsHomeNews = Convert.ToBoolean(dtTemp.Rows[0]["NewsHomeNews"]);
NewsClicked = Convert.ToInt32(dtTemp.Rows[0]["NewsClicked"]);
if (!NewsRecommend)
NewsRecommend = Convert.ToBoolean(dtTemp.Rows[0]["NewsRecommend"]);
if (NewsKeyword == null)
NewsKeyword = dtTemp.Rows[0]["NewsKeyword"].ToString();
}
/// <summary>
/// 获取所有新闻列表
/// </summary>
/// <returns>新闻列表</returns>
public DataTable GetNewsList()
{
return tbaNews.GetAllNews();
}
/// <summary>
/// 获取已经过审核新闻列表
/// </summary>
/// <returns>新闻列表</returns>
public DataTable GetNewsChecked()
{
return tbaNews.GetCheckedNewsList();
}
/// <summary>
/// 获取未经审核新闻列表
/// </summary>
/// <returns>新闻列表</returns>
public DataTable GetNewsUnchecked()
{
return tbaNews.GetNewsUnchecked();
}
/// <summary>
/// 获取最热10条新闻
/// </summary>
public DataTable GetHotNews()
{
return tbaNews.GetHotNews();
}
/// <summary>
/// 获取首页新闻
/// </summary>
public DataTable GetHomeNews()
{
return tbaNews.GetNewsAtHome();
}
/// <summary>
/// 根据内容查询新闻
/// </summary>
public DataTable GetNewsByContent(string pstrContent)
{
return tbaNews.GetNewsByContent(pstrContent);
}
/// <summary>
/// 根据栏目ID获取新闻列表
/// </summary>
public DataTable GetNewsByItemID(int pintItemID)
{
return tbaNews.GetNewsByItemID(pintItemID);
}
/// <summary>
/// 根据ID和关键字获取相关新闻
/// </summary>
public DataTable GetRelativeNews(string pstrKeyword, int pintNewsID)
{
return tbaNews.GetRelativeNews(pstrKeyword,pintNewsID);
}
/// <summary>
/// 根据关键字获取新闻列表
/// </summary>
public DataTable GetNewsByKeyword(string pstrKeyword)
{
return tbaNews.GetNewsByKeyword(pstrKeyword);
}
/// <summary>
/// 根据新闻标题查询新闻
/// </summary>
public DataTable GetNewsByTitle(string pstrTitle)
{
return tbaNews.GetNewsByTitle(pstrTitle);
}
/// <summary>
/// 根据作者获取新闻列表
/// </summary>
public DataTable GetNewsByWriter(string pstrWriter)
{
return tbaNews.GetNewsByUser(pstrWriter);
}
/// <summary>
/// 判断新闻是否为图片新闻
/// </summary>
public bool IsImageNews(int pintNewsID)
{
object oNews = tbaNews.IsImageNews(pintNewsID);
if (oNews == null)
return false;
else
return true;
}
/// <summary>
/// 判断新闻是否已经通过检查
/// </summary>
public bool IsNewsChecked(int pintNewsID)
{
object oNews = tbaNews.IsNewsChecked(pintNewsID);
if (oNews == null)
return false;
else
return true;
}
/// <summary>
/// 设置新闻为首页新闻
/// </summary>
/// <returns>若为image则表示不是图片新闻,若为unchecked说明新闻尚未通过审核,成功为success</returns>
public string SetNewsAtHome(int pintNewsID)
{
if (!IsImageNews(pintNewsID))
return "image";
if (!IsNewsChecked(pintNewsID))
return "unchecked";
tbaNews.SetNewsAtHome(pintNewsID);
return "success";
}
/// <summary>
/// 添加新闻
/// </summary>
public int AddNews()
{
object oNewsID = tbaNews.AddNews(NewsUserID, NewsTitle, NewsContent, Convert.ToInt32(NewsImage), NewsImageURL);
if (oNewsID == null)
return -1;
else
{
return Convert.ToInt32(oNewsID);
}
}
/// <summary>
/// 设置新闻为已审核
/// </summary>
public void SetNewsChecked(string pstrTemplateURL)
{
NewsFileURL = GenerateNewsFile(pstrTemplateURL);
tbaNews.SetNewsChecked(NewsID, NewsFileURL, NewsItemID, NewsCheckUserID, NewsKeyword, Convert.ToInt32(NewsHomeNews), Convert.ToInt32(NewsRecommend));
}
/// <summary>
/// 根据选择的模板生成新闻文件并返回其地址
/// </summary>
private string GenerateNewsFile(string pstrTemplateURL)
{
string ReturnName = DateTime.Now.ToString("yyyyMMddhhmmss") + DateTime.Now.Millisecond.ToString() + ".aspx";
string FileName = null;
//获取应用程序物理路径
eNewsItem eni = new eNewsItem(NewsItemID);
eSystemSetting es = new eSystemSetting();
es.SettingKey = "PhysicalPath";
string PhysicalPath = es.GetValueByKey();
FileName = PhysicalPath + eni.NewsItemEName + @"\";
System.Text.Encoding encode = System.Text.Encoding.Default;
FileStream fs = new FileStream(FileName + ReturnName, FileMode.CreateNew);
StreamWriter sw = new StreamWriter(fs, encode);
try
{
if (!Directory.Exists(FileName))
{
Directory.CreateDirectory(FileName);
}
FileName += ReturnName;
//读取模板内容
eNewsUser enu = new eNewsUser();
enu.GetExtendInfo(NewsUserID);
GetNewsInfo(NewsID);
//替换模板中对应内容
string TemplateContent = GetTemplateContent(pstrTemplateURL, PhysicalPath);
TemplateContent = TemplateContent.Replace("@PageTitle@", NewsTitle);
TemplateContent = TemplateContent.Replace("@Title@", NewsTitle);
TemplateContent = TemplateContent.Replace("@Writer@", enu.NewsUserTrueName);
TemplateContent = TemplateContent.Replace("@Date@", NewsCreateDate.ToString("yyyy年MM月dd日"));
NewsContent = NewsContent.Replace("\n", @"<br/>");
TemplateContent = TemplateContent.Replace("@Content@", NewsContent);
TemplateContent = TemplateContent.Replace("@Keyword@", NewsKeyword);
TemplateContent = TemplateContent.Replace("@NewsID@", NewsID.ToString());
if (NewsImage)
TemplateContent = TemplateContent.Replace("@Image@", NewsImageURL);
sw.Write(TemplateContent);
}
finally
{
sw.Close();
}
return eni.NewsItemEName + @"/" + ReturnName;
}
/// <summary>
/// 读取模板内容
/// </summary>
private string GetTemplateContent(string pstrTemplateURL, string pstrPhysicalPath)
{
string TemplateFile = pstrPhysicalPath + @"template\" + pstrTemplateURL;
StreamReader sr = new StreamReader(TemplateFile);
return sr.ReadToEnd();
}
/// <summary>
/// 判断指定ID新闻是否存在
/// </summary>
public bool IsNewsIDExist(int pintNewsID)
{
if (tbaNews.GetNewsInfo(pintNewsID).Rows.Count==0)
return false;
else
return true;
}
/// <summary>
/// 根据新闻ID删除新闻
/// </summary>
public void DeleteNewsByID(int NewsID)
{
eNews en = new eNews(NewsID);
if (NewsFileURL != null)
{
eSystemSetting esys = new eSystemSetting();
esys.SettingKey = "PhysicalPath";
string PhysicalPath = esys.GetValueByKey();
string FileName = PhysicalPath + en.NewsFileURL.Replace(@"/", @"\");
string ImageFile=null;
//删除新闻文件
try
{
if (File.Exists(FileName))
File.Delete(FileName);
}
catch (Exception)
{
return;
}
//如果有图片,删除图片文件
if (en.NewsImage)
{
ImageFile = PhysicalPath + @"\newsimage\" + en.NewsImageURL;
try
{
if (File.Exists(ImageFile))
File.Delete(ImageFile);
}
catch (Exception)
{
return;
}
}
}
tbaNews.DeleteNewsByID(NewsID);
}
/// <summary>
/// 设置指定ID新闻点击率加1
/// </summary>
public void SetNewsClicked(int pintNewsID)
{
tbaNews.SetNewsClicked(pintNewsID);
}
/// <summary>
/// 获取推荐新闻
/// </summary>
public DataTable GetNewsRecommend()
{
return tbaNews.GetNewsRecommend();
}
/// <summary>
/// 获取首页中指定栏目ID的新闻列表
/// </summary>
public DataTable GetHomeItemNews(int pintItemID)
{
return tbaNews.GetHomeItemNews(pintItemID);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -