Exemple #1
0
        /// <summary>
        /// 
        /// </summary>
        public override void ProcessRequest()
        {

            bool alerts = InputContext.GetParamBoolOrFalse("alerts", "Moderation Alerts");
            bool referrals = InputContext.GetParamBoolOrFalse("referrals", "Refered Items");
            bool locked = InputContext.GetParamBoolOrFalse("locked", "Locked Items");
            bool fastMod = InputContext.GetParamBoolOrFalse("fastmod", "!Fast Moderation");
            int modClassId = InputContext.GetParamIntOrZero("modclassid", "Moderation Class Id");
            int postId = InputContext.GetParamIntOrZero("postfilterid", "PostId Filter");
            int show = InputContext.GetParamIntOrZero("show", "Number of Items");
            if (show == 0)
            {
                show = 10;
            }

            // Process Input
            ProcessSubmission();

            if (InputContext.DoesParamExist("done","Redirect"))
            {
                String redir = InputContext.GetParamStringOrEmpty("redirect", "Redirect");
                //AddDnaRedirect("moderate?newstyle=1");
                XmlNode redirect = AddElementTag(RootElement, "REDIRECT");
                AddAttribute(redirect, "URL", redir);
                return;
            }

            // Generate XML
            GenerateXml(alerts, referrals, locked, fastMod, InputContext.ViewingUser.UserID, modClassId, postId, show);
            
            // Get a list of all the sites.
            SiteXmlBuilder siteXml = new SiteXmlBuilder(InputContext);
            RootElement.AppendChild(ImportNode(siteXml.GenerateAllSitesXml(InputContext.TheSiteList).FirstChild));

            // Get a list of site options for all sites.
            RootElement.AppendChild(ImportNode(siteXml.GetSiteOptionListXml(InputContext.TheSiteList)));

            //Get Moderation Resons for current moderation class
            ModerationReasons modReasons = new ModerationReasons(InputContext);
            RootElement.AppendChild(ImportNode(modReasons.GenerateXml(modClassId)) );

            //Get Distress Messages for current Moderation Class
            ModerationDistressMessages mdm = new ModerationDistressMessages(InputContext);
            RootElement.AppendChild(ImportNode(mdm.GenerateXml(modClassId)));
            
        }
Exemple #2
0
        /// <summary>
        /// 
        /// </summary>
        private void ProcessSubmission()
        {
            int posts = InputContext.GetParamCountOrZero("postid", "PostId");
            for (int i = 0; i < posts; ++i)
            {
                int threadId = InputContext.GetParamIntOrZero("threadid", i, "ThreadId");
                int forumId = InputContext.GetParamIntOrZero("forumid", i, "ForumId");
                int postId = InputContext.GetParamIntOrZero("postid", i, "PostId");
                int modId = InputContext.GetParamIntOrZero("modid", i, "ModId");
                ModerationItemStatus decision = (ModerationItemStatus)InputContext.GetParamIntOrZero("decision", i, "Moderation Decision");
                int referId = InputContext.GetParamIntOrZero("referto", i, "Refer");
                int siteId = InputContext.GetParamIntOrZero("siteid", i, "SiteId");
                Api.PostStyle.Style postStyle = (Api.PostStyle.Style)InputContext.GetParamIntOrZero("PostStyle", i, "PostStyle");
                int threadModStatus = InputContext.GetParamIntOrZero("threadmoderationstatus", i, "Thread Moderation Status");

                bool sendEmail = InputContext.GetSiteOptionValueBool(siteId, "Moderation", "DoNotSendEmail") == false;
                String notes = InputContext.GetParamStringOrEmpty("notes",i, "Moderator Notes");
                String emailType = InputContext.GetParamStringOrEmpty("emailtype",i, "Email Template Insert Text");
                
                // Custom Email Text should be either removed URLs or a custom entry.
                String customText = InputContext.GetParamStringOrEmpty("customemailtext",i, "Custom Email Text");

                if (IsArchivePreModPosting(postId, decision, postStyle))
                {
                    ArchivePreModPosting(modId);
                }
                else
                {
                    // Handle PreMod Postings
                    int distressID = InputContext.GetParamIntOrZero("distressmessageid", i, "Distress Message");
                    bool preModPosting = false;
                    if (postId == 0)
                    {
                        bool create = (decision == ModerationItemStatus.PassedWithEdit || distressID > 0);
                        using (IDnaDataReader dataReader = InputContext.CreateDnaDataReader("checkpremodpostingexists"))
                        {
                            dataReader.AddParameter("modid", modId);
                            dataReader.AddParameter("create", create);
                            dataReader.Execute();

                            if (dataReader.Read())
                            {
                                preModPosting = dataReader.DoesFieldExist("modid");
                                if (create)
                                {
                                    postId = dataReader.GetInt32NullAsZero("postid");
                                    threadId = dataReader.GetInt32NullAsZero("threadid");
                                }
                            }
                        }
                    }

                    // Edit the post.
                    if (decision == ModerationItemStatus.PassedWithEdit)
                    {
                        String subject = InputContext.GetParamStringOrEmpty("editpostsubject", i, "Edit Post Subject");
                        String body = InputContext.GetParamStringOrEmpty("editposttext", i, "Edit Post Body");
                        int userId = InputContext.ViewingUser.UserID;
                        ModerationPosts.EditPost(AppContext.ReaderCreator, userId, postId, subject, body, false, true);
                    }

                    Update(siteId, forumId, threadId, postId, modId, decision, notes, referId, threadModStatus, sendEmail, emailType, customText);

                    // Post Distress Message
               
                    if (distressID > 0)
                    {
                        ModerationDistressMessages distressMessage = new ModerationDistressMessages(InputContext);
                        distressMessage.PostDistressMessage(distressID, siteId, forumId, threadId, postId);
                    }
                }
            }

        }