Esempio n. 1
0
        public static void DeleteDebatePost(Int32 tid, Int32 opinion, Int32 pid)
        {
            using (var trans = Meta.CreateTrans())
            {
                var list = PostDebateField.FindAllByPids(pid);
                list.Delete();

                var list2 = Debatedigg.FindAllByPid(pid);
                list2.Delete();

                var db = FindByTid(tid);
                //var fi = Meta.Table.FindByName(opinion);
                //var count = (Int32)db[fi.Name];
                //count -= list.Count + list2.Count;
                //db.SetItem(fi.Name, count);
                var count = list.Count + list2.Count;
                if (opinion == 1)
                {
                    db.PositiveDiggs -= count;
                }
                else if (opinion == 2)
                {
                    db.NegativeDiggs -= count;
                }
                db.Update();
            }
        }
Esempio n. 2
0
        public static Int32 GetDebatePostCount(string onlyauthor, int tid, int posterId, int stand)
        {
            var exp = _.Tid == tid & _.Layer > 0;

            exp &= _.ID.In(PostDebateField.FindSQLWithPidByTidAndOpinion(tid, stand));
            if (!onlyauthor.IsNullOrWhiteSpace() && onlyauthor != "0")
            {
                exp &= _.PosterID == posterId;
            }

            return(FindCount(exp));
        }
Esempio n. 3
0
        public static Int32 SearchDebateCount(Int32 tid, Int32 opinion)
        {
            var exp = _.Invisible == 0;

            if (tid > 0)
            {
                exp &= _.Tid == tid & _.Layer == 0;
            }
            if (opinion > 0)
            {
                exp |= _.ID.In(PostDebateField.FindSQLByTidAndOpinion(tid, opinion));
            }

            return(FindCount(exp));
        }
Esempio n. 4
0
        public static EntityList <Post> SearchDebate(Int32 tid, Int32 opinion, Int32 start, Int32 max)
        {
            var exp = _.Invisible == 0;

            if (tid > 0)
            {
                exp &= _.Tid == tid & _.Layer == 0;
            }
            if (opinion > 0)
            {
                exp |= _.ID.In(PostDebateField.FindSQLByTidAndOpinion(tid, opinion));
            }

            return(FindAll(exp, null, null, start, max));
        }
Esempio n. 5
0
        public static void CreateDebateExpandInfo(Int32 tid, Int32 pid, Int32 opinion, Int32 diggs)
        {
            using (var trans = Meta.CreateTrans())
            {
                var entity = new PostDebateField();
                entity.Tid     = tid;
                entity.Pid     = pid;
                entity.Opinion = opinion;
                entity.Diggs   = diggs;
                entity.Insert();

                var db = FindByTid(tid);
                if (opinion == 1)
                {
                    db.PositiveDiggs++;
                }
                else if (opinion == 2)
                {
                    db.NegativeDiggs++;
                }
                db.Update();
            }
        }