/// <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))); }
/// <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); } } } }