using System;
using System.Collections.Generic;
using System.Text;

/**********关于首页显示新闻的数据访问层接口*****
 * 关于新闻这块需求中没有明确要求,只是主页中显示新闻,管理员能够添加,修改新闻一些常规功能
 * 设计者:魏莹
 * 设计时间:2008年5月20日
 * 修订者:王枢昊
 * 设计时间:2008年5月25日
 ************************************************/
namespace IDDal
{
    /// <summary>
    /// 主页新闻的数据库访问层的操作
    /// </summary>
    /// <typeparam name="T">T是泛型,在实现类里面是Model.News</typeparam>
    public interface INews<T>
    {
        /// <summary>
        /// 获取主页的新闻列表方法[这里定义的是前5条记录]
        /// </summary>
        /// <returns>IList集合对象,每个节点是News对象</returns>
        IList<T> GetIndexNews();

        /// <summary>
        /// 获取表中所有新闻对象方法
        /// </summary>
        /// <returns>IList集合对象,每个节点是News对象</returns>
        IList<T> GetAllNews();

        /// <summary>
        /// 增加一条新闻方法
        /// </summary>
        /// <param name="oneNews">要增加新闻对象[Model.News]</param>
        /// <returns>影响数据库行数</returns>
        int AddNews(T oneNews);

        /// <summary>
        /// 删除一条新闻记录方法
        /// </summary>
        /// <param name="oneNews">要删除新闻对象</param>
        /// <returns>影响数据库行数</returns>
        int DeleteNew(T oneNews);

        /// <summary>
        /// 删除多条新闻记录方法
        /// </summary>
        /// <param name="someNews">要删除的新闻对象列表</param>
        /// <returns>影响数据库行数</returns>
        int DeleteNews(IList<T> someNews);

        /// <summary>
        /// 编辑一条新闻记录的方法
        /// </summary>
        /// <param name="oneNews">要编辑的新闻对象</param>
        /// <returns>影响数据库行数</returns>
        int EditNews(T oneNews);

        /// <summary>
        /// 显示某条新闻
        /// </summary>
        /// <param name="news">新闻对象[其实这里这个对象中只包含新闻ID]</param>
        /// <returns>新闻对象</returns>
        T ShowNews(T news);
    }
}
