⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 news.cs

📁 ASP.NET 2.0动态网站设计实例源代码,本书介绍了ASP.NET2.0的基础知识
💻 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 + -