コード例 #1
0
        /// <summary>
        /// Recommend action,用于读取精华贴数据
        /// </summary>
        /// <param name="CurrentPageindex">分页页码</param>
        /// <returns>根据传入的强类型ForumMainByRecommendEntity实例模型,返回Recommend视图</returns>
        public ActionResult Recommend(int CurrentPageindex = 1)
        {
            PublicFunctions.SetUrls(ViewBag, Url);  //构造资源路径(js、css、image等)
            const int PageSize = 20, PageCount = 5; //定义每页显示数据总数及最多显示的页码
            //构造分页对象配置类
            ConfigPaging cp = new ConfigPaging(CurrentPageindex, PageSize, PageCount);
            //要返回的数据模型
            ForumMainByRecommendEntity Model = new ForumMainByRecommendEntity();

            using (DB_BBSEntities db = new DB_BBSEntities())//构造数据库上下文
            {
                //查询标记为精华帖的列表内容
                Model.ForumMain = db.tb_ForumMain.Where(W => W.IsRecommend == true && W.Isdelete == false)
                                  .OrderByDescending(O => O.ID).Skip(cp.StartRow).Take(PageSize).ToList();
                //查询发帖人
                Model.UsersByCustomer = Model.ForumMain.Select(S => S.tb_UsersByCustomer).ToList();
                //查询回复次数列表内容
                Model.ReplyNumber = Model.ForumMain.Select(S => S.tb_ForumInfoStatus.Where(W => W.ForumMainID == S.ID).First().ReplyNumber).ToList();
                //查询查看次数列表内容
                Model.SeeNumber = Model.ForumMain.Select(S => S.tb_ForumInfoStatus.Where(W => W.ForumMainID == S.ID).First().SeeNumber).ToList();
                //查询最后回复人列表内容
                Model.LastReplyUser = Model.ForumMain.Select(S => S.tb_ForumInfoStatus.Where(W => W.ForumMainID == S.ID).First().tb_UsersByCustomer.UserName).ToList();
                //统计精华帖总数
                Model.ForumMainCount = db.tb_ForumMain.Count(C => C.IsRecommend == true && C.Isdelete == false);
            }
            cp.GetPaging(ViewBag, Model.ForumMainCount); //绑定分页数据
            return(View(Model));                         //返回视图
        }
コード例 #2
0
        /// <summary>
        /// SecondContent action,用于读取贴子详细数据
        /// </summary>
        /// <param name="id">主贴ID</param>
        /// <param name="CurrentPageindex">分页页码</param>
        /// <returns>根据传入的强类型ForumMainJoinForumSecondEntity实例模型,返回SecondContent视图</returns>
        public ActionResult SecondContent(int id = 0, int CurrentPageindex = 1)
        {
            if (id == 0)
            {
                return(Goto("Index", "Home"));
            }                                                                          //执行跳转到上一次访问的动作,或跳转到指定的动作
            PublicFunctions.SetUrls(ViewBag, Url);                                     //构造资源路径(js、css、image等)
            const int    PageSize = 10, PageCount = 5;                                 //定义每页显示数据总数及最多显示的页码
            ConfigPaging cp = new ConfigPaging(CurrentPageindex, PageSize, PageCount); //构造分页对象配置类
            ForumMainJoinForumSecondEntity Model = null;                               //要返回的数据模型

            using (DB_BBSEntities db = new DB_BBSEntities())                           //构造数据库上下文类
            {
                //根据条件,查询主贴表数据
                Model = db.tb_ForumMain.Where(W => W.ID == id && W.Isdelete == false).Select(S => new ForumMainJoinForumSecondEntity
                {
                    ForumMain        = S,                                                //主贴信息
                    ForumClassify    = S.tb_ForumClassify,                               //所属子专区信息
                    UsersByCustomer  = S.tb_UsersByCustomer,                             //发帖人信息
                    ZY_Sex           = S.tb_UsersByCustomer.tb_ZY_Sex,                   //发帖人性别(读取资源表)
                    ForumSecondCount = S.tb_ForumSecond.Count(C => C.IsDelete == false), //总回复数
                    //查询该贴的跟帖数据集合,并使用分页进行查询
                    ForumSecond = S.tb_ForumSecond.Where(W1 => W1.IsDelete == false && W1.CurSequence > 0).OrderBy(O => O.CurSequence).Skip(cp.StartRow).Take(PageSize).Select(S1 =>
                                                                                                                                                                               new ChildForumSecondByUsersByCustomer
                    {
                        ForumSecond     = S1,                             //跟帖数据
                        UsersByCustomer = S1.tb_UsersByCustomer,          //回复人
                        ZY_Sex          = S1.tb_UsersByCustomer.tb_ZY_Sex //回复人性别(读取资源表)
                    }).ToList()
                }).FirstOrDefault();
            }
            cp.GetPaging(ViewBag, Model.ForumSecondCount); //绑定分页数据
            ViewBag.curid = id;                            //此id为传入的所属专区ID,将在下次分页时传回
            return(View(Model));                           //返回视图
        }
コード例 #3
0
        public ActionResult MainContent(int id = 0, int CurrentPageindex = 1)
        {
            if (id == 0)                       //判断子专区id值是否为0
            {
                return(Goto("Index", "Home")); //执行跳转到上一次访问的动作,或跳转到指定的动作
            }
            bool IsLimit = false;              //定义权限变量

            ViewBag.IsLimit = false;           //将权限值赋予动态类型,用于视图中的访问
            //实例化用户登录状态类
            BBSSite.MyPublic.LoginStatus IStatus = new BBSSite.MyPublic.LoginStatus();
            if (IStatus.IsLogin)                                 //判断用户是否登录
            {
                tb_ForumClassify ForumClassify = null;           //定义子专区数据类
                using (DB_BBSEntities db = new DB_BBSEntities()) //实例化数据库上下文类
                {
                    //按照子专区id值查询该专区的其他信息
                    ForumClassify = db.tb_ForumClassify.Where(W => W.ID == id).FirstOrDefault();
                    if (ForumClassify != null)//如果查询数据不为空
                    {
                        //获取该专区的所属用户id,改用户可对该专区的帖子列表有执行操作权限
                        int ForumClassifyUserID = ForumClassify.ForumUserID;
                        //取出该子专区所属大板块专区的信息数据
                        tb_ForumArea ForumArea = db.tb_ForumArea.Where(W => W.ID == ForumClassify.ForumAreaID).FirstOrDefault();
                        //取出大板块专区的所属用户id
                        int ForumAreaUserID = ForumArea.UserID;
                        //如果当前登录用户与拥有子专区或大板块专区权限的用户相同
                        if (IStatus.LoginStatusEntity.ID == ForumClassifyUserID || IStatus.LoginStatusEntity.ID == ForumAreaUserID)
                        {
                            ViewBag.IsLimit = true;//该用户有执行操作权限
                            IsLimit         = true;
                        }
                    }
                }
            }
            PublicFunctions.SetUrls(ViewBag, Url);  //构造资源路径(js、css、image等)
            const int PageSize = 20, PageCount = 5; //定义每页显示数据总数及最多显示的页码
            //构造分页对象配置类
            ConfigPaging cp = new ConfigPaging(CurrentPageindex, PageSize, PageCount);
            ForumClassifyJoinForumMainEntity Model = null;   //要返回的数据模型

            using (DB_BBSEntities db = new DB_BBSEntities()) //实例化数据库上下文类
            {
                //按条件查询子专区表以及所属主贴表数据
                Model = db.tb_ForumClassify.Where(W => W.ID == id).Select(S => new ForumClassifyJoinForumMainEntity
                {
                    ID                = S.ID,
                    ClassifyName      = S.ClassifyName,
                    ClassifyInnerLogo = S.ClassifyInnerLogo,
                    UsersByBanzhu     = S.tb_UsersByCustomer,
                    ForumMain         = (ICollection <tb_ForumMain>)S.tb_ForumMain.Where(Where => Where.Isdelete == false && ((!IsLimit && Where.IsExamine == 1) || IsLimit)).OrderByDescending(O => O.ID).Skip(cp.StartRow).Take(PageSize)
                }).FirstOrDefault();
                //以下为与ForumMain(帖子)表对应的外键表信息
                Model.ReplyNumber     = Model.ForumMain.Select(S => S.tb_ForumInfoStatus.Where(W => W.ForumMainID == S.ID).First().ReplyNumber).ToList();                                                                 //统计回复次数
                Model.SeeNumber       = Model.ForumMain.Select(S => S.tb_ForumInfoStatus.Where(W => W.ForumMainID == S.ID).First().SeeNumber).ToList();                                                                   //统计查看次数
                Model.LastReplyUser   = Model.ForumMain.Select(S => S.tb_ForumInfoStatus.Where(W => W.ForumMainID == S.ID).First().tb_UsersByCustomer.UserName).ToList();                                                 //最后回复人
                Model.UsersByCustomer = Model.ForumMain.Select(S => S.tb_UsersByCustomer).ToList();                                                                                                                       //发帖人
                Model.ImgUrl          = Model.ForumMain.Select(S => (S.IsRecommend ? "pin_1.gif" : "folder_new.gif")).ToList();                                                                                           //推荐帖与普通帖logo
                Model.FMType          = Model.ForumMain.Select(S => (S.IsRecommend ? "日月精华" : "最新帖子")).ToList();                                                                                                          //推荐贴与普通帖提示标题
                //以下为总的统计数据
                Model.TotalForumCount = db.tb_ForumMain.Count(W => W.Isdelete == false && W.ForumClassifyID == id);                                                                                                       //总帖子数
                Model.TotalReplyCount = db.tb_ForumMain.Where(W => W.Isdelete == false && W.ForumClassifyID == id).ToList().Aggregate(0, (count, current) => count + current.tb_ForumInfoStatus.Sum(S => S.ReplyNumber)); //总回复数
                Model.TotalSeeCount   = db.tb_ForumMain.Where(W => W.Isdelete == false && W.ForumClassifyID == id).ToList().Aggregate(0, (count, current) => count + current.tb_ForumInfoStatus.Sum(S => S.SeeNumber));   //只查看数
            }
            cp.GetPaging(ViewBag, Model.TotalForumCount);                                                                                                                                                                 //绑定分页数据
            ViewBag.curid = id;                                                                                                                                                                                           //此id为传入的所属专区ID,将在下次分页时带入
            return(View(Model));                                                                                                                                                                                          //返回视图
        }