private void SaveQuickReply() { int iFloodInterval = MainSettings.FloodInterval; if (iFloodInterval > 0) { UserProfileController upc = new UserProfileController(); UserProfileInfo upi = upc.Profiles_Get(SiteId, InstanceId, this.UserId); if (upi != null) { if (SimulateDateDiff.DateDiff(SimulateDateDiff.DateInterval.Second, upi.DateLastPost, DateTime.Now) < iFloodInterval) { Controls.InfoMessage im = new Controls.InfoMessage(); im.Message = "<div class=\"afmessage\">" + string.Format(Utilities.GetSharedResource("[RESX:Error:FloodControl]"), iFloodInterval) + "</div>"; plhMessage.Controls.Add(im); return; } } } //TODO: Fix for anon //If Not Current.Request.IsAuthenticated Then // If Not ctlCaptcha.IsValid Or txtUserName.Value = "" Then // Exit Sub // End If //End If //Dim ui As New UserProfileInfo //If UserId > 0 Then // Dim upc As New UserProfileController // ui = upc.Profiles_Get(PortalId, ForumModuleId, UserId) //Else // ui.TopicCount = 0 // ui.ReplyCount = 0 // ui.RewardPoints = 0 // ui.IsMod = False // ui.TrustLevel = -1 //End If ForumController fc = new ForumController(); Forum forumInfo = fc.Forums_Get(SiteId, InstanceId, ForumId, this.UserId, true, false, TopicId); bool UserIsTrusted = false; UserIsTrusted = Utilities.IsTrusted((int)forumInfo.DefaultTrustValue, ControlConfig.User.TrustLevel, Permissions.HasPerm(forumInfo.Security.Trust, ForumUser.UserRoles), forumInfo.AutoTrustLevel, ControlConfig.User.PostCount); bool isApproved = false; isApproved = Convert.ToBoolean(((forumInfo.IsModerated == true) ? false : true)); if (UserIsTrusted || Permissions.HasPerm(forumInfo.Security.ModApprove, ForumUser.UserRoles)) { isApproved = true; } ReplyInfo ri = new ReplyInfo(); Data.Topics db = new Data.Topics(); //im rc As New ReplyController int ReplyId = -1; string sUsername = string.Empty; if (HttpContext.Current.Request.IsAuthenticated) { sUsername = ControlConfig.User.DisplayName; } else { sUsername = Utilities.CleanString(SiteId, txtUserName.Value, false, EditorTypes.TEXTBOX, true, false, InstanceId, ThemePath, false); } string sBody = string.Empty; //TODO: Check for allowhtml bool allowHtml = false; //If forumInfo.AllowHTML Then // allowHtml = isHTMLPermitted(forumInfo.EditorPermittedUsers, IsTrusted, forumInfo.Security.ModEdit) //End If sBody = Utilities.CleanString(SiteId, HttpContext.Current.Request.Form["txtBody"], allowHtml, EditorTypes.TEXTBOX, forumInfo.UseFilter, forumInfo.AllowScript, InstanceId, ThemePath, forumInfo.AllowEmoticons); DateTime createDate = DateTime.Now; ri.TopicId = TopicId; ri.ReplyToId = TopicId; ri.Content.AuthorId = UserId; ri.Content.AuthorName = sUsername; ri.Content.Body = sBody; ri.Content.DateCreated = createDate; ri.Content.DateUpdated = createDate; ri.Content.IsDeleted = false; ri.Content.Subject = Subject; ri.Content.Summary = string.Empty; ri.IsApproved = isApproved; ri.IsDeleted = false; ri.Content.IPAddress = HttpContext.Current.Request.UserHostAddress; ReplyId = db.Reply_Save(ri); //Check if is subscribed if (HttpContext.Current.Request.Params["chkSubscribe"] != null) { if (HttpContext.Current.Request.Params["chkSubscribe"] == "1" && UserId > 0) { if (!(Subscriptions.IsSubscribed(SiteId, InstanceId, ForumId, TopicId, SubscriptionTypes.Instant, UserId))) { //TODO: Fix Subscriptions //Dim sc As New Data.Tracking //sc.Subscription_Update(SiteId, InstanceId, ForumId, TopicId, 1, UserId) } } } if (isApproved) { //Send Subscriptions try { string sURL = Utilities.NavigateUrl(PageId, "", new string[] { ParamKeys.ForumId + "=" + ForumId, ParamKeys.ViewType + "=" + Views.Topic, ParamKeys.TopicId + "=" + TopicId, ParamKeys.ContentJumpId + "=" + ReplyId }); Subscriptions.SendSubscriptions(SiteId, InstanceId, PageId, ForumId, TopicId, ReplyId, UserId); #if !SKU_LITE try { Social oSocial = new Social(); oSocial.AddForumItemToJournal(SiteId, InstanceId, UserId, "forumreply", sURL, Subject, sBody); } catch (Exception ex) { DotNetNuke.Services.Exceptions.Exceptions.LogException(ex); } #endif } catch (Exception ex) { DotNetNuke.Services.Exceptions.Exceptions.ProcessModuleLoadException(this, ex); } //Redirect to show post string fullURL = Utilities.NavigateUrl(PageId, "", new string[] { ParamKeys.ForumId + "=" + ForumId, ParamKeys.ViewType + "=" + Views.Topic, ParamKeys.TopicId + "=" + TopicId, ParamKeys.ContentJumpId + "=" + ReplyId }); HttpContext.Current.Response.Redirect(fullURL, false); } else if (isApproved == false) { Email.SendEmailToModerators(forumInfo.ModNotifyTemplateId, SiteId, ForumId, ri.TopicId, ReplyId, InstanceId, PageId, string.Empty); string[] Params = { ParamKeys.ForumId + "=" + ForumId, ParamKeys.ViewType + "=confirmaction", "afmsg=pendingmod", ParamKeys.TopicId + "=" + TopicId }; HttpContext.Current.Response.Redirect(Utilities.NavigateUrl(PageId, "", Params), false); } else { string fullURL = Utilities.NavigateUrl(PageId, "", new string[] { ParamKeys.ForumId + "=" + ForumId, ParamKeys.ViewType + "=" + Views.Topic, ParamKeys.TopicId + "=" + TopicId, ParamKeys.ContentJumpId + "=" + ReplyId }); #if !SKU_LITE try { Modules.ActiveForums.Social oSocial = new Modules.ActiveForums.Social(); oSocial.AddForumItemToJournal(SiteId, InstanceId, UserId, "forumreply", fullURL, Subject, sBody); } catch (Exception ex) { DotNetNuke.Services.Exceptions.Exceptions.LogException(ex); } #endif HttpContext.Current.Response.Redirect(fullURL, false); } //End If }