protected void btnWatchForum_Click(object sender, EventArgs e) { Forum forum = ForumManager.GetForumByID(this.ForumID); if (forum == null) { return; } if (!ForumManager.IsUserAllowedToSubscribe(NopContext.Current.User)) { string loginURL = CommonHelper.GetLoginPageURL(true); Response.Redirect(loginURL); } ForumSubscription forumSubscription = ForumManager.GetAllSubscriptions(NopContext.Current.User.CustomerID, forum.ForumID, 0, 1, 0).FirstOrDefault(); if (forumSubscription == null) { forumSubscription = ForumManager.InsertSubscription(Guid.NewGuid(), NopContext.Current.User.CustomerID, forum.ForumID, 0, DateTime.Now); } else { ForumManager.DeleteSubscription(forumSubscription.ForumSubscriptionID); } CommonHelper.ReloadCurrentPage(); }
protected void btnDeleteSelected_Click(object sender, EventArgs e) { if (Page.IsValid) { try { foreach (GridViewRow row in gvForumSubscriptions.Rows) { var cbSelect = row.FindControl("cbSelect") as CheckBox; var hfForumSubscriptionId = row.FindControl("hfForumSubscriptionId") as HiddenField; if (cbSelect != null && cbSelect.Checked && hfForumSubscriptionId != null) { int forumSubscriptionId = int.Parse(hfForumSubscriptionId.Value); ForumSubscription subscription = ForumManager.GetSubscriptionById(forumSubscriptionId); if (subscription != null && subscription.UserId == NopContext.Current.User.CustomerId) { ForumManager.DeleteSubscription(forumSubscriptionId); } } } gvForumSubscriptions.PageIndex = 0; BindData(); } catch (Exception exc) { LogManager.InsertLog(LogTypeEnum.CustomerError, exc.Message, exc); } } }
protected void btnWatchTopic_Click(object sender, EventArgs e) { var forumTopic = ForumManager.GetTopicById(this.TopicId); if (forumTopic == null) { return; } if (!ForumManager.IsUserAllowedToSubscribe(NopContext.Current.User)) { string loginURL = SEOHelper.GetLoginPageUrl(true); Response.Redirect(loginURL); } var forumSubscription = ForumManager.GetAllSubscriptions(NopContext.Current.User.CustomerId, 0, forumTopic.ForumTopicId, 1, 0).FirstOrDefault(); if (forumSubscription == null) { forumSubscription = ForumManager.InsertSubscription(Guid.NewGuid(), NopContext.Current.User.CustomerId, 0, forumTopic.ForumTopicId, DateTime.Now); } else { ForumManager.DeleteSubscription(forumSubscription.ForumSubscriptionId); } CommonHelper.ReloadCurrentPage(); }
public void SaveInfo() { foreach (GridViewRow row in gvForumSubscriptions.Rows) { var cbSelect = row.FindControl("cbSelect") as CheckBox; var hfForumSubscriptionId = row.FindControl("hfForumSubscriptionId") as HiddenField; if (cbSelect != null && hfForumSubscriptionId != null) { bool selected = cbSelect.Checked; int forumSubscriptionId = int.Parse(hfForumSubscriptionId.Value); if (selected) { ForumManager.DeleteSubscription(forumSubscriptionId); } } } }
protected void btnSubmit_Click(object sender, EventArgs e) { try { string text = string.Empty; switch (ForumManager.ForumEditor) { case EditorTypeEnum.SimpleTextBox: { text = txtTopicBodySimple.Text.Trim(); } break; case EditorTypeEnum.BBCodeEditor: { text = txtTopicBodyBBCode.Text.Trim(); } break; case EditorTypeEnum.HtmlEditor: { text = txtTopicBodyHtml.Content; } break; default: break; } string subject = txtTopicTitle.Text; var topicType = ForumTopicTypeEnum.Normal; bool subscribe = cbSubscribe.Checked; string IPAddress = NopContext.Current.UserHostAddress; DateTime nowDT = DateTime.UtcNow; if (ForumManager.IsUserAllowedToSetTopicPriority(NopContext.Current.User)) { topicType = (ForumTopicTypeEnum)Enum.ToObject(typeof(ForumTopicTypeEnum), int.Parse(ddlPriority.SelectedItem.Value)); } text = text.Trim(); if (String.IsNullOrEmpty(text)) { throw new NopException(GetLocaleResourceString("Forum.TextCannotBeEmpty")); } if (this.AddTopic) { #region Adding topic var forum = ForumManager.GetForumById(this.ForumId); if (forum == null) { Response.Redirect(SEOHelper.GetForumMainUrl()); } if (!ForumManager.IsUserAllowedToCreateTopic(NopContext.Current.User, forum)) { string loginURL = SEOHelper.GetLoginPageUrl(true); Response.Redirect(loginURL); } subject = subject.Trim(); if (String.IsNullOrEmpty(subject)) { throw new NopException(GetLocaleResourceString("Forum.TopicSubjectCannotBeEmpty")); } var forumTopic = ForumManager.InsertTopic(forum.ForumId, NopContext.Current.User.CustomerId, topicType, subject, 0, 0, 0, 0, null, nowDT, nowDT, true); var forumPost = ForumManager.InsertPost(forumTopic.ForumTopicId, NopContext.Current.User.CustomerId, text, IPAddress, nowDT, nowDT, false); forumTopic = ForumManager.UpdateTopic(forumTopic.ForumTopicId, forumTopic.ForumId, forumTopic.UserId, forumTopic.TopicType, forumTopic.Subject, 1, 0, forumPost.ForumPostId, forumTopic.UserId, forumPost.CreatedOn, forumTopic.CreatedOn, nowDT); //subscription if (ForumManager.IsUserAllowedToSubscribe(NopContext.Current.User)) { if (subscribe) { var forumSubscription = ForumManager.InsertSubscription(Guid.NewGuid(), NopContext.Current.User.CustomerId, 0, forumTopic.ForumTopicId, nowDT); } } string topicURL = SEOHelper.GetForumTopicUrl(forumTopic); Response.Redirect(topicURL); #endregion } else if (this.EditTopic) { #region Editing topic var forumTopic = ForumManager.GetTopicById(this.ForumTopicId); if (forumTopic == null) { Response.Redirect(SEOHelper.GetForumMainUrl()); } if (!ForumManager.IsUserAllowedToEditTopic(NopContext.Current.User, forumTopic)) { string loginURL = SEOHelper.GetLoginPageUrl(true); Response.Redirect(loginURL); } subject = subject.Trim(); if (String.IsNullOrEmpty(subject)) { throw new NopException(GetLocaleResourceString("Forum.TopicSubjectCannotBeEmpty")); } forumTopic = ForumManager.UpdateTopic(forumTopic.ForumTopicId, forumTopic.ForumId, forumTopic.UserId, topicType, subject, forumTopic.NumPosts, forumTopic.Views, forumTopic.LastPostId, forumTopic.LastPostUserId, forumTopic.LastPostTime, forumTopic.CreatedOn, nowDT); var firstPost = forumTopic.FirstPost; if (firstPost != null) { firstPost = ForumManager.UpdatePost(firstPost.ForumPostId, firstPost.TopicId, firstPost.UserId, text, firstPost.IPAddress, firstPost.CreatedOn, nowDT); } else { //error firstPost = ForumManager.InsertPost(forumTopic.ForumTopicId, forumTopic.UserId, text, IPAddress, forumTopic.CreatedOn, nowDT, false); } //subscription if (ForumManager.IsUserAllowedToSubscribe(NopContext.Current.User.CustomerId)) { var forumSubscription = ForumManager.GetAllSubscriptions(NopContext.Current.User.CustomerId, 0, forumTopic.ForumTopicId, 1, 0).FirstOrDefault(); if (subscribe) { if (forumSubscription == null) { forumSubscription = ForumManager.InsertSubscription(Guid.NewGuid(), NopContext.Current.User.CustomerId, 0, forumTopic.ForumTopicId, nowDT); } } else { if (forumSubscription != null) { ForumManager.DeleteSubscription(forumSubscription.ForumSubscriptionId); } } } string topicURL = SEOHelper.GetForumTopicUrl(forumTopic); Response.Redirect(topicURL); #endregion } else if (this.AddPost) { #region Adding post var forumTopic = ForumManager.GetTopicById(this.ForumTopicId); if (forumTopic == null) { Response.Redirect(SEOHelper.GetForumMainUrl()); } if (!ForumManager.IsUserAllowedToCreatePost(NopContext.Current.User, forumTopic)) { string loginURL = SEOHelper.GetLoginPageUrl(true); Response.Redirect(loginURL); } var forumPost = ForumManager.InsertPost(this.ForumTopicId, NopContext.Current.User.CustomerId, text, IPAddress, nowDT, nowDT, true); //subscription if (ForumManager.IsUserAllowedToSubscribe(NopContext.Current.User.CustomerId)) { var forumSubscription = ForumManager.GetAllSubscriptions(NopContext.Current.User.CustomerId, 0, forumPost.TopicId, 1, 0).FirstOrDefault(); if (subscribe) { if (forumSubscription == null) { forumSubscription = ForumManager.InsertSubscription(Guid.NewGuid(), NopContext.Current.User.CustomerId, 0, forumPost.TopicId, nowDT); } } else { if (forumSubscription != null) { ForumManager.DeleteSubscription(forumSubscription.ForumSubscriptionId); } } } int pageSize = 10; if (ForumManager.PostsPageSize > 0) { pageSize = ForumManager.PostsPageSize; } int pageIndex = ForumManager.CalculateTopicPageIndex(forumPost.TopicId, pageSize, forumPost.ForumPostId); string topicURL = SEOHelper.GetForumTopicUrl(forumPost.TopicId, "p", pageIndex + 1, forumPost.ForumPostId); Response.Redirect(topicURL); #endregion } else if (this.EditPost) { #region Editing post var forumPost = ForumManager.GetPostById(this.ForumPostId); if (forumPost == null) { Response.Redirect(SEOHelper.GetForumMainUrl()); } if (!ForumManager.IsUserAllowedToEditPost(NopContext.Current.User, forumPost)) { string loginURL = SEOHelper.GetLoginPageUrl(true); Response.Redirect(loginURL); } forumPost = ForumManager.UpdatePost(forumPost.ForumPostId, forumPost.TopicId, forumPost.UserId, text, forumPost.IPAddress, forumPost.CreatedOn, nowDT); //subscription if (ForumManager.IsUserAllowedToSubscribe(NopContext.Current.User.CustomerId)) { var forumSubscription = ForumManager.GetAllSubscriptions(NopContext.Current.User.CustomerId, 0, forumPost.TopicId, 1, 0).FirstOrDefault(); if (subscribe) { if (forumSubscription == null) { forumSubscription = ForumManager.InsertSubscription(Guid.NewGuid(), NopContext.Current.User.CustomerId, 0, forumPost.TopicId, nowDT); } } else { if (forumSubscription != null) { ForumManager.DeleteSubscription(forumSubscription.ForumSubscriptionId); } } } int pageSize = 10; if (ForumManager.PostsPageSize > 0) { pageSize = ForumManager.PostsPageSize; } int pageIndex = ForumManager.CalculateTopicPageIndex(forumPost.TopicId, pageSize, forumPost.ForumPostId); string topicURL = SEOHelper.GetForumTopicUrl(forumPost.TopicId, "p", pageIndex + 1, forumPost.ForumPostId); Response.Redirect(topicURL); #endregion } } catch (Exception exc) { pnlError.Visible = true; lErrorMessage.Text = Server.HtmlEncode(exc.Message); } }