private bool SaveForumData() { bool result = false; try { Page.Validate("ForumEdit"); if (!Page.IsValid) throw new Exception(); AccessEdit.State.Validate(false); if (forum == null) forum = new BXForum(); forum.Active = ForumActive.Checked; int categoryId; if (int.TryParse(ForumCategory.SelectedValue, out categoryId) && (categoryId == 0 || BXForumCategory.GetById(categoryId) != null)) forum.CategoryId = categoryId; forum.Sites.Clear(); foreach (ListItem item in ForumSites.Items) if (item.Selected) forum.Sites.Add(item.Value); forum.Name = ForumName.Text; forum.Description = ForumDescription.Text; int sort; if (int.TryParse(ForumSort.Text, out sort)) forum.Sort = sort; forum.AllowBBCode = ForumBBCode.Checked; forum.AllowSmiles = ForumSmiles.Checked; forum.AllowVotingForTopic = ForumVotingForTopic.Checked; forum.AllowVotingForPost = ForumVotingForPost.Checked; forum.IndexContent = ForumIndexContent.Checked; forum.Code = ForumCode.Text; forum.XmlId = ForumXmlId.Text; forum.Save(); if (IsSearchModuleInstalled && ForumRebuildSearchIndex.Checked) { BXSchedulerAgent a = new BXSchedulerAgent(); a.SetClassNameAndAssembly(typeof(Bitrix.Forum.BXForum.IndexSynchronizer)); a.Parameters.Add("Action", Bitrix.Forum.BXForum.IndexSynchronizerAction.Rebuild.ToString("G")); a.Parameters.Add("ForumId", Id); a.StartTime = DateTime.Now.AddSeconds(5D); a.Save(); } if (forum.Id > 0) { BXRoleManager.RemoveRoleFromTasks("forum", forum.Id.ToString()); BXRoleManager.RemoveRoleFromOperations("forum", forum.Id.ToString()); } SaveAccessState(); id = forum.Id; result = true; } catch (Exception ex) { errorMessage.AddErrorMessage(ex.Message); } return result; }
private void LoadForumData() { int requestId; if (int.TryParse(Request.QueryString["id"], out requestId) && requestId > 0) id = requestId; if (id > 0) { forum = BXForum.GetById(Id, BXTextEncoder.EmptyTextEncoder); if (forum == null) { errorMessage.AddErrorMessage(GetMessage("Error.ForumNotFound")); TabControl.Visible = false; return; } BXForum.BXForumSiteCollection currentSites = forum.Sites; foreach (ListItem item in ForumSites.Items) { if (currentSites.Exists( delegate(BXForum.BXForumSite forumSite) { return String.Equals(forumSite.SiteId, item.Value, StringComparison.OrdinalIgnoreCase); })) item.Selected = true; } if (forum.CategoryId > 0) ForumCategory.SelectedValue = forum.CategoryId.ToString(); ForumActive.Checked = forum.Active; ForumName.Text = forum.Name; ForumDescription.Text = forum.Description; ForumSort.Text = forum.Sort.ToString(); ForumBBCode.Checked = forum.AllowBBCode; ForumSmiles.Checked = forum.AllowSmiles; ForumVotingForTopic.Checked = forum.AllowVotingForTopic; ForumVotingForPost.Checked = forum.AllowVotingForPost; ForumIndexContent.Checked = forum.IndexContent; ForumCode.Text = forum.Code; ForumXmlId.Text = forum.XmlId; } else { ForumSort.Text = "10"; ForumActive.Checked = true; ForumIndexContent.Checked = true; ForumBBCode.Checked = true; ForumSmiles.Checked = true; } }