예제 #1
0
        protected void PostMessageHandler(object sender, System.EventArgs e)
        {
            int userID = SessionAdapter.GetUserID();

            // store the new message in the given thread
            string mailTemplate = ApplicationAdapter.GetEmailTemplate(EmailTemplate.ThreadUpdatedNotification);
            int    messageID    = ThreadManager.CreateNewMessageInThread(_thread.ThreadID, userID, meMessageEditor.MessageText, meMessageEditor.MessageTextHTML,
                                                                         Request.UserHostAddress.ToString(), meMessageEditor.MessageTextXML, meMessageEditor.SubscribeToThread,
                                                                         mailTemplate, ApplicationAdapter.GetEmailData(), CacheManager.GetSystemData().SendReplyNotifications);

            // invalidate forum RSS in cache
            ApplicationAdapter.InvalidateCachedForumRSS(_thread.ForumID);

            // if auditing is required, we've to do this now.
            if (SessionAdapter.CheckIfNeedsAuditing(AuditActions.AuditNewMessage))
            {
                SecurityManager.AuditNewMessage(userID, messageID);
            }

            // invalidate forum in asp.net cache
            CacheManager.InvalidateCachedItem(CacheManager.ProduceCacheKey(CacheKeys.SingleForum, _thread.ForumID));

            // all ok, redirect to message list
            int startAtMessageIndex = ThreadGuiHelper.GetStartAtMessageForGivenMessageAndThread(_thread.ThreadID, messageID, SessionAdapter.GetUserDefaultNumberOfMessagesPerPage());

            if (meMessageEditor.AddAttachment)
            {
                // redirect to manage attachment form for this message
                Response.Redirect(string.Format("Attachments.aspx?SourceType=1&MessageID={0}", messageID), true);
            }
            else
            {
                Response.Redirect(string.Format("Messages.aspx?ThreadID={0}&StartAtMessage={1}&#{2}", _thread.ThreadID, startAtMessageIndex, messageID), true);
            }
        }
예제 #2
0
        private void Page_Load(object sender, System.EventArgs e)
        {
            int threadID       = HnDGeneralUtils.TryConvertToInt(Request.QueryString["ThreadID"]);
            int messageID      = HnDGeneralUtils.TryConvertToInt(Request.QueryString["MessageID"]);
            int startAtMessage = ThreadGuiHelper.GetStartAtMessageForGivenMessageAndThread(threadID, messageID, SessionAdapter.GetUserDefaultNumberOfMessagesPerPage());

            Response.Redirect("Messages.aspx?ThreadID=" + threadID + "&StartAtMessage=" + startAtMessage + "&#" + messageID, true);
        }
예제 #3
0
        protected void PostMessageHandler(object sender, System.EventArgs e)
        {
            string mailTemplate = ApplicationAdapter.GetEmailTemplate(EmailTemplate.ThreadUpdatedNotification);
            // store the new message in the given thread and close it directly.
            int messageID = ThreadManager.CreateNewMessageInThreadAndCloseThread(_thread.ThreadID, SessionAdapter.GetUserID(), meMessageEditor.MessageText,
                                                                                 meMessageEditor.MessageTextHTML, Request.UserHostAddress.ToString(), meMessageEditor.MessageTextXML,
                                                                                 mailTemplate, ApplicationAdapter.GetEmailData(), CacheManager.GetSystemData().SendReplyNotifications);

            // all ok, redirect to message list
            int startAtMessageID = ThreadGuiHelper.GetStartAtMessageForGivenMessageAndThread(_thread.ThreadID, messageID, SessionAdapter.GetUserDefaultNumberOfMessagesPerPage());

            Response.Redirect("Messages.aspx?ThreadID=" + _thread.ThreadID + "&StartAtMessage=" + startAtMessageID + "&#" + messageID, true);
        }
예제 #4
0
        protected void PostMessageHandler(object sender, System.EventArgs e)
        {
            int  userID = SessionAdapter.GetUserID();
            bool result = MessageManager.UpdateEditedMessage(userID, _editMessageID, meMessageEditor.MessageText, meMessageEditor.MessageTextHTML, Request.UserHostAddress, meMessageEditor.MessageTextXML);

            if (SessionAdapter.CheckIfNeedsAuditing(AuditActions.AuditAlteredMessage))
            {
                SecurityManager.AuditAlteredMessage(userID, _editMessageID);
            }

            // all ok, redirect to thread list
            int startAtMessageID = ThreadGuiHelper.GetStartAtMessageForGivenMessageAndThread(_thread.ThreadID, _editMessageID, SessionAdapter.GetUserDefaultNumberOfMessagesPerPage());

            Response.Redirect("Messages.aspx?ThreadID=" + _thread.ThreadID + "&StartAtMessage=" + startAtMessageID + "&#" + _editMessageID, false);
        }
예제 #5
0
        protected void rptRSS_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            switch (e.Item.ItemType)
            {
            case ListItemType.AlternatingItem:
            case ListItemType.Item:
                DataRowView currentRow = (DataRowView)e.Item.DataItem;
                string      nickName   = currentRow["NickName"].ToString();
                string      message    = currentRow["MessageTextAsHTML"].ToString();
                string      subject    = currentRow["Subject"].ToString();
                Literal     title      = (Literal)e.Item.FindControl("title");
                title.Text = HttpUtility.HtmlEncode(String.Format("{0} by {1}", subject, nickName));

                Literal description = (Literal)e.Item.FindControl("description");
                description.Text = HttpUtility.HtmlEncode(message);

                Literal link           = (Literal)e.Item.FindControl("itemLink");
                int     threadID       = (int)currentRow["ThreadID"];
                int     messageID      = (int)currentRow["MessageID"];
                int     startAtMessage = ThreadGuiHelper.GetStartAtMessageForGivenMessageAndThread(threadID, messageID, ApplicationAdapter.GetMaxAmountMessagesPerPage());
                link.Text = HttpUtility.HtmlEncode("http://" + Request.Url.Host + ApplicationAdapter.GetVirtualRoot() + String.Format(@"Messages.aspx?ThreadID=" + threadID + "&StartAtMessage=" + startAtMessage + "#" + messageID));

                Literal permaLink = (Literal)e.Item.FindControl("permaLink");
                permaLink.Text = link.Text;

                Literal pubDate = (Literal)e.Item.FindControl("pubDate");
                pubDate.Text = String.Format("{0:R}", ((DateTime)currentRow["PostingDate"]).AddHours(-2));

                Literal author = (Literal)e.Item.FindControl("author");
                author.Text = nickName;

                Literal category = (Literal)e.Item.FindControl("threadName");
                category.Text = HttpUtility.HtmlEncode(subject);
                break;
            }
        }