Example #1
0
 public virtual void MakePickUndo(AdminValue av)
 {
     av.ActionId = ForumLogAction.UnPick;
     AdminUpdate("set IsPicked=0", av.Condition);
     //取消精华不减少积分
     makeLog(av);
 }
Example #2
0
 public virtual void MakeStickyUndo(AdminValue av)
 {
     av.ActionId = ForumLogAction.UnSticky;
     AdminUpdate("set Status=" + TopicStatus.Normal, av.Condition);
     //取消置顶不减少积分
     makeLog(av);
 }
Example #3
0
 public virtual void MakePick(AdminValue av)
 {
     av.ActionId = ForumLogAction.Pick;
     AdminUpdate("set IsPicked=1", av.Condition);
     AddAuthorIncome(av.Condition, UserAction.Forum_TopicPicked.Id, "加为精华");
     makeLog(av);
 }
Example #4
0
        private void makeLog(AdminValue av)
        {
            List <ForumTopic> topics = GetByIds(av.Ids);

            foreach (ForumTopic topic in topics)
            {
                logService.AddTopic(av.User, av.AppId, topic.Id, av.ActionId, av.Reason, av.Ip);

                // 发送短信通知
                if (!av.IsSendMsg)
                {
                    continue;
                }

                String msg   = ForumLogAction.GetLable(av.ActionId);
                String title = string.Format(alang.get(typeof(ForumApp), "adminPostMsgTitle"), topic.Title, msg);

                String topicInfo = "<a href='" + alink.ToAppData(topic) + "'>" + topic.Title + "</a>";
                if (av.ActionId == ForumLogAction.Delete)
                {
                    topicInfo = topic.Title;
                }

                String body = string.Format(alang.get(typeof(ForumApp), "adminPostMsgBody"), topicInfo, msg, DateTime.Now, av.Reason);

                msgService.SiteSend(title, body, topic.Creator);
            }
        }
Example #5
0
 public virtual void MakeSticky(AdminValue av)
 {
     av.ActionId = ForumLogAction.Sticky;
     AdminUpdate("set Status=" + TopicStatus.Sticky, av.Condition);
     AddAuthorIncome(av.Condition, UserAction.Forum_TopicSticky.Id, "置顶");
     makeLog(av);
 }
Example #6
0
        public override void After(object returnValue, MethodInfo method, object[] args, object target)
        {
            if (method.Name == "DeleteToTrash")
            {
                ForumTopic topic = args[0] as ForumTopic;
                Microblog  mblog = Microblog.find("DataId=:id and DataType=:dtype")
                                   .set("id", topic.Id)
                                   .set("dtype", typeof(ForumTopic).FullName)
                                   .first();

                if (mblog != null)
                {
                    mblog.delete();
                }
            }

            else if (method.Name == "DeleteList")
            {
                AdminValue av = args[0] as AdminValue;
                if (strUtil.HasText(av.Ids))
                {
                    String str = "DataType='" + typeof(ForumTopic).FullName + "' and DataId in (" + av.Ids + ")";
                    Microblog.deleteBatch(str);
                }
            }
        }
Example #7
0
        public virtual void MakeCategory(int categoryId, AdminValue av)
        {
            av.ActionId = ForumLogAction.SetCategory;
            String action = string.Format("set CategoryId=" + categoryId);

            ForumTopic.updateBatch(action, av.Condition);
            makeLog(av);
        }
Example #8
0
 public virtual void MakeLockUndo(AdminValue av)
 {
     av.ActionId = ForumLogAction.UnLock;
     AdminUpdate("set IsLocked=0", av.Condition);
     // 积分规则中本身定义的是负值,所以反操作用SubstractIncome
     SubstractAuthorIncome(av.Condition, UserAction.Forum_TopicLocked.Id, "取消锁定");
     makeLog(av);
 }
Example #9
0
 public virtual void MakeLock(AdminValue av)
 {
     av.ActionId = ForumLogAction.Lock;
     AdminUpdate("set IsLocked=1", av.Condition);
     // 积分规则中本身定义的是负值,所以此处用AddIncome
     AddAuthorIncome(av.Condition, UserAction.Forum_TopicLocked.Id, "锁定");
     makeLog(av);
 }
Example #10
0
        public virtual void MakeHighlightUndo(AdminValue av)
        {
            av.ActionId = ForumLogAction.UnHighlight;
            String action = "set TitleStyle=''";

            ForumTopic.updateBatch(action, av.Condition);
            makeLog(av);
        }
Example #11
0
        public virtual void MakeHighlight(String style, AdminValue av)
        {
            av.ActionId = ForumLogAction.Highlight;
            String action = string.Format("set TitleStyle='{0}'", style);

            ForumTopic.updateBatch(action, av.Condition);
            makeLog(av);
        }
Example #12
0
        public virtual void DeleteList(AdminValue av)
        {
            av.ActionId = ForumLogAction.Delete;

            DeleteListToTrash(av.Ids);
            // 积分规则中本身定义的是负值,所以此处用AddIncome
            AddAuthorIncome(av.Condition, UserAction.Forum_TopicDeleted.Id, "删除");
            makeLog(av);
        }
Example #13
0
        public virtual void MakeMove(int targetForumId, AdminValue av)
        {
            av.ActionId = ForumLogAction.MoveTopic;

            String condition     = "Id in (" + av.Ids + ")";
            String conditionPost = "TopicId in (" + av.Ids + ")";
            String action        = "set ForumBoardId=" + targetForumId;

            db.updateBatch <ForumTopic>(action, condition);
            db.updateBatch <ForumPost>(action, conditionPost);

            makeLog(av);
        }
Example #14
0
        //-----------------------------------------------------------------------------------------------------


        private AdminValue av()
        {
            AdminValue v = new AdminValue();

            v.Ids   = idList;
            v.AppId = ctx.app.Id;

            v.User   = (User)ctx.viewer.obj;
            v.Reason = ctx.PostIsCheck("chkReason") == 1 ? ctx.Post("reasonText") : ctx.Post("reasonSelect");

            v.Ip        = ctx.Ip;
            v.IsSendMsg = ctx.PostIsCheck("IsSendMsg") == 1;

            return(v);
        }
Example #15
0
        public virtual void MakeGloablStickyUndo(AdminValue av)
        {
            av.ActionId = ForumLogAction.GlobalUnSticky;

            ForumApp app = db.findById <ForumApp>(av.AppId);

            if (app == null)
            {
                return;
            }

            List <ForumTopic> newStickTopics = db.find <ForumTopic>(av.Condition).list();

            app.StickyTopic = StickyTopic.SubtractData(app.StickyTopic, newStickTopics);
            db.update(app);

            makeLog(av);
        }
Example #16
0
        public async Task GetVendorQuestions(int VendorID, Release currentRelease, WindowsPrincipal User)
        {
            try
            {
                Release updatedRelease;
                using (IReleaseRepository db = new ReleaseRepository())
                {
                    updatedRelease = db.WhereAndInclude(r => r.ReleaseID == currentRelease.ReleaseID, r => r.ReleaseVendors).FirstOrDefault();
                }
                var vendorIDs = updatedRelease.ReleaseVendors.Select(rv => rv.VendorID).ToArray();
                IEnumerable <Vendor> Vendors = DbSet.Where(v => vendorIDs.Contains(v.VendorID))
                                               .Include(v => v.VendorAreass)
                                               .Include(v => v.VendorAreass.Select(a => a.Area.QuestionAreas)).ToList();

                List <int> AreaIDs          = new List <int>();
                List <int> ReleaseQuestions = new List <int>();

                Vendors.ToList().ForEach(v =>
                                         v.VendorAreass.ToList().ForEach(e =>
                {
                    var IsReleaseArea = currentRelease.ReleaseAreaOwners.Any(a => a.AreaID == e.AreaID && a.IsChecked == true);
                    if (IsReleaseArea)
                    {
                        AreaIDs.Add(e.AreaID);
                    }
                }));

                List <int> ReleaseQuestion = new List <int>();
                if (AreaIDs.Count > 0)
                {
                    using (IQuestionRepository db = new QuestionRepository())
                    {
                        ReleaseQuestions = db.Where(q => AreaIDs.Contains(q.SubArea.AreaID)).Select(q => q.QuestionID).ToList();
                    }

                    var Qustions      = QuestionClasifications.SelectQuestionClasificationsView(Context);
                    var AreaQuestions = Qustions.Where(q => ReleaseQuestions.Contains(q.QuestionID)).ToList();
                    List <QuestionAreaView> arrQuestions = new List <QuestionAreaView>();
                    AreaQuestions.ToList().ForEach(e =>
                    {
                        AdminValue userValue = AdminValue.NO;
                        switch (e.TableName)
                        {
                        case "Product":
                            {
                                var obj   = currentRelease.ReleaseProducts.Count > 0 ? currentRelease.ReleaseProducts.FirstOrDefault(p => p.ProductID == e.ParameterID) : null;
                                userValue = obj != null && obj.IsChecked ? AdminValue.YES : AdminValue.NO;
                                break;
                            }

                        case "FamilyProduct":
                            {
                                var obj   = currentRelease.ReleaseFamilyProducts.Count > 0 ? currentRelease.ReleaseFamilyProducts.FirstOrDefault(p => p.FamilyProductID == e.ParameterID) : null;
                                userValue = obj != null && obj.IsChecked ? AdminValue.YES : AdminValue.NO;
                                break;
                            }

                        case "Characteristic":
                            {
                                var obj   = currentRelease.ReleaseCharacteristics.Count > 0 ? currentRelease.ReleaseCharacteristics.FirstOrDefault(p => p.CharacteristicID == e.ParameterID) : null;
                                userValue = obj != null && obj.IsChecked ? AdminValue.YES : AdminValue.NO;
                                break;
                            }

                        case "Area":
                            {
                                var obj   = currentRelease.ReleaseAreaOwners.Count > 0 ? currentRelease.ReleaseAreaOwners.FirstOrDefault(p => p.AreaID == e.ParameterID) : null;
                                userValue = obj != null && obj.IsChecked ? AdminValue.YES : AdminValue.NO;
                                break;
                            }

                        case "Stakeholder":
                            {
                                var obj   = currentRelease.ReleaseStakeholders.Count > 0 ? currentRelease.ReleaseStakeholders.FirstOrDefault(p => p.StakeholderID == e.ParameterID && p.EmployeeID1 != null) : null;
                                userValue = obj != null ? AdminValue.YES : AdminValue.NO;
                                break;
                            }

                        default:
                            break;
                        }
                        ;

                        arrQuestions.Add(new QuestionAreaView()
                        {
                            TableName     = e.TableName,
                            ParameterID   = e.ParameterID,
                            AdminValue    = e.AdminValue,
                            ParameterType = e.ParameterType,
                            QuestionID    = e.QuestionID,
                            UserValue     = userValue
                        });
                    });

                    var AddQuestion     = arrQuestions.Where(q => q.ParameterType == ParameterType.Add && (q.UserValue == AdminValue.YES && q.AdminValue == AdminValue.YES)).Select(q => q.QuestionID).Distinct();
                    var removeQuestions = arrQuestions.Where(q => q.ParameterType == ParameterType.Remove && (q.AdminValue != q.UserValue)).Select(q => q.QuestionID).Distinct();
                    ReleaseQuestion = AddQuestion.Where(q => !removeQuestions.Contains(q)).ToList();
                    //if (ReleaseQuestion.Count > 0)
                    //{

                    //}
                }
                using (IQuestionRepository db = new QuestionRepository())
                {
                    await db.SetInitiateQuestions(currentRelease, ReleaseQuestion, (WindowsPrincipal)User);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }