Beispiel #1
0
        //对回复的点赞
        public void ForRep(int creNum, int repid, int userid)
        {
            Praised p;
            Replys  R = lpe.Replys.Where(e => e.ReplyID == repid).FirstOrDefault();

            R.Rep_Praise_Num += creNum;

            if (creNum == 1)
            {
                p = new Praised()
                {
                    Rep_Id  = repid,
                    User_Id = userid
                };
                lpe.Praised.Add(p);
            }
            else
            {
                //否则取消点赞回复
                p = lpe.Praised.Where(e => (e.Rep_Id == repid && e.User_Id == userid)).FirstOrDefault();
                lpe.Praised.Remove(p);
            }
            try
            {
                lpe.SaveChanges();
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Beispiel #2
0
        //对评论点赞
        public void ForCom(int creNum, int comid, int userid)
        {
            Praised p;
            Comment c = lpe.Comment.Where(e => e.CommentID == comid).FirstOrDefault();

            c.Com_Praise_Num += creNum;
            if (creNum == 1)
            {
                //creNum为1表示点赞
                p = new Praised()
                {
                    User_Id = userid,
                    Com_Id  = comid
                };
                lpe.Praised.Add(p);
            }
            else
            {
                //否则表示取消点赞
                p = lpe.Praised.Where(e => (e.Com_Id == comid && e.User_Id == userid)).FirstOrDefault();
                lpe.Praised.Remove(p);
            }
            try
            {
                lpe.SaveChanges();
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Beispiel #3
0
        //获取所有评论回复与当前用户的联系
        public IEnumerable <ViewModel> GetComAndRep(int postid)
        {
            int now_userid = 0;

            if (Session["user"] != null)
            {
                now_userid = (int)Session["userid"];
            }
            //查找当前帖子下所有评论
            IEnumerable <Comment> coms = lpe.Comment.Include("User").Where(e => e.Post_Id == postid).OrderByDescending(e => e.Com_Praise_Num);
            IList <ViewModel>     vms  = new List <ViewModel>();

            foreach (var com in coms)
            {
                //status为2表示未被点赞
                int     status = 2;
                Praised p      = lpe.Praised.Where(e => (e.Com_Id == com.CommentID && e.User_Id == now_userid)).FirstOrDefault();

                //查找当前用户点赞过的所有回复
                IQueryable <Praised> pp = lpe.Praised.Where(e => e.User_Id == now_userid);
                var query = (from P in pp
                             join R in lpe.Replys
                             on P.Rep_Id equals R.ReplyID
                             select R).ToList();
                IList <Replys> pr = query;
                if (p != null)
                {
                    //说明该评论被当前用户点赞过
                    status = 1;
                }

                //获取该评论所有回复
                IQueryable <Replys> rs = lpe.Replys.Include("User").Where(e => e.Com_Id == com.CommentID).OrderByDescending(e => e.ReplyID);
                //初始化一个viewmodel实例
                ViewModel vm = new ViewModel()
                {
                    c         = com,            //一条评论
                    Rs        = rs,             //这条评论的所有回复
                    PraStatus = status,         //这条评论有没有被当前用户点赞
                    Ps        = pr              //
                };
                vms.Add(vm);
            }
            IEnumerable <ViewModel> vmss = vms;

            return(vmss);
        }
Beispiel #4
0
        public IEnumerable <ViewModel> GetComAndRep()
        {
            //启用贪婪加载 否则你会发现当表中的数据为空时你第一次插入数据 会报Nullreferenceexception(未将对象引用设置到实例)
            //原因就是 comment表查出来但是默认的导航属性时懒加载 在试图中如果存在使用导航属性的地方自然报错
            IEnumerable <Comments> coms = db.Comments.Include("UserInfo");
            IList <ViewModel>      vms  = new List <ViewModel>();

            foreach (var com in coms)
            {
                int status = 2;
                //查找该评论下的点赞以及回复
                //实际项目中 e.User_Id==1 应当使用当前用户id
                Praised p = db.Praised.Where(e => (e.ComID == com.ComID && e.Users_id == 1)).FirstOrDefault();
                //查找出当前用户点赞过的所有回复
                IQueryable <Praised> pp = db.Praised.Where(e => e.Users_id == 1);
                var query = (from P in pp
                             join R in db.Reply
                             on P.Reply_id equals R.Reply_id
                             select R).ToList();
                IList <Reply> pr = query;
                if (p != null)
                {
                    //该评论被当前用户赞过了
                    status = 1;
                }
                IQueryable <Reply> rs = db.Reply.Include("User").Where(e => e.ComID == com.ComID);
                ViewModel          vm = new ViewModel()
                {
                    c         = com,
                    Rs        = rs,
                    PraStatus = status,
                    Ps        = pr
                };
                vms.Add(vm);
            }
            IEnumerable <ViewModel> vmss = vms;

            return(vmss);
        }