public ManageForum(DirForum forum) { InitializeComponent(); _forum = forum; _general = new ManageForumGeneral(forum); _moderators = new ManageModerators(forum); _participants = new ManageParticipants(forum); }
private void OnParticipantsUpdated(DirForum forum) { Platform.UIThread(this, delegate { UserList = _forum.Participants(); AddList = new List<string>(_forum.AddedParticipants); RemoveList = new List<string>(_forum.RemovedParticipants); UpdateList(); }); }
public Participants(MainForm mainForm, string forumName) { InitializeComponent(); CIX.DirectoryCollection.ForumUpdated += OnForumUpdated; CIX.DirectoryCollection.ParticipantsUpdated += OnParticipantsUpdated; _forum = CIX.DirectoryCollection.ForumByName(forumName); _mainForm = mainForm; _showMugshots = false; if (_forum == null) { CIX.DirectoryCollection.RefreshForum(forumName); } }
/// <summary> /// Notify that a forum details has been updated. /// </summary> /// <param name="dirForum">The forum for which the list was updated</param> internal void NotifyForumUpdated(DirForum dirForum) { if (ForumUpdated != null) { ForumUpdated(dirForum); } }
/// <summary> /// Refresh the details of the forum, including title and description. /// </summary> /// <param name="forumName">The forum name</param> public void RefreshForum(string forumName) { Thread t = new Thread(() => { if (CIX.Online) { DirForum forum = null; try { string encodedForumName = FolderCollection.EncodeForumName(forumName); LogFile.WriteLine("Updating directory for {0}", forumName); HttpWebRequest wrGeturl = APIRequest.Get("forums/" + encodedForumName + "/details", APIRequest.APIFormat.XML); Stream objStream = APIRequest.ReadResponse(wrGeturl); if (objStream != null) { using (XmlReader reader = XmlReader.Create(objStream)) { XmlSerializer serializer = new XmlSerializer(typeof(ForumDetails)); ForumDetails forumDetails = (ForumDetails)serializer.Deserialize(reader); bool isNewForum = false; forum = ForumByName(forumDetails.Name); if (forum == null) { forum = new DirForum(); isNewForum = true; } forum.Name = forumDetails.Name; forum.Title = forumDetails.Title; forum.Desc = forumDetails.Description; forum.Cat = forumDetails.Category; forum.Sub = forumDetails.SubCategory; forum.Recent = forumDetails.Recent; forum.Type = forumDetails.Type; lock (CIX.DBLock) { if (isNewForum) { CIX.DB.Insert(forum); _allForums[forum.ID] = forum; } else { CIX.DB.Update(forum); } } LogFile.WriteLine("Directory for {0} updated", forum.Name); } } } catch (Exception e) { CIX.ReportServerExceptions("DirectoryCollection.RefreshForum", e); } NotifyForumUpdated(forum); } }); t.Start(); }
private void JoinForum_Load(object sender, EventArgs e) { CIX.DirectoryCollection.ForumUpdated += OnForumUpdated; statusField.Text = Resources.JoinForumStatusText; _forum = CIX.DirectoryCollection.ForumByName(_forumName); if (_forum != null && !string.IsNullOrEmpty(_forum.Desc)) { RefreshForum(_forum); } else { if (_forum != null) { forumTitle.Text = _forum.Title; } forumName.Text = _forumName; forumImage.Image = CategoryFolder.IconForCategory("CIX"); CIX.DirectoryCollection.RefreshForum(_forumName); } ResizeForm(); }
private void RefreshForum(DirForum forum) { if (forum != null) { forumName.Text = forum.Name; forumImage.Image = CategoryFolder.IconForCategory(forum.Cat); forumTitle.Text = forum.Title; string descText = string.Format("<font face=\"Arial\" size=\"11px\"><div style=\"color:rgb({0});\">{1}</div></font>", UI.ToString(SystemColors.ControlText), forum.Desc); descText = descText.Replace("\n", "<br/>"); forumDescription.Text = descText; if (forum.IsClosed) { statusField.Text = Resources.JoinClosedForum; joinButton.Text = Resources.RequestAdmittance; } ResizeForm(); } }
/// <summary> /// Callback after the forum details are refreshed from the server, whether or not they /// succeed. The e.Forum parameter is null if the forum doesn't exist. /// </summary> private void OnForumUpdated(DirForum forum) { Platform.UIThread(this, delegate { _forum = forum; if (_forum != null) { RefreshForum(_forum); } else { forumName.Text = _forumName; forumImage.Image = CategoryFolder.IconForCategory("CIX"); statusField.Text = Resources.JoinNoSuchForum; cancelButton.Text = Resources.Close; joinButton.Visible = false; joinButton.Enabled = false; ResizeForm(); } }); }
private void OnModeratorsUpdated(DirForum forum) { Platform.UIThread(this, delegate { UserList = _forum.Moderators(); AddList = new List<string>(_forum.AddedModerators); RemoveList = new List<string>(_forum.RemovedModerators); UpdateList(); }); }
/// <summary> /// Invoke the forum management dialog. /// </summary> public void ManageForum(DirForum forum) { ManageForum manageForumWindow = new ManageForum(forum); manageForumWindow.ShowDialog(); }
public ManageForumGeneral(DirForum forum) { InitializeComponent(); _forum = forum; }
public ManageParticipants(DirForum forum) { InitializeComponent(); _forum = forum; }
/// <summary> /// Update the list of moderators /// </summary> private void OnModeratorsUpdated(DirForum forum) { Platform.UIThread(this, delegate { if (forum == _thisForum && frmCanvas.Items.Count > 1) { ForumPage forumFolderItem = (ForumPage) frmCanvas.Items[0]; forumFolderItem.Forum = _thisForum; forumFolderItem.InvalidateItem(); ProfileGroupItem moderatorsItem = (ProfileGroupItem) frmCanvas.Items[1]; moderatorsItem.Items = new StringCollection(); if (_thisForum != null) { moderatorsItem.Items.AddRange(_thisForum.Moderators()); } moderatorsItem.InvalidateItem(); } }); }
/// <summary> /// Event invoked when a forum's details are refreshed from the server. /// </summary> private void OnDirForumUpdated(DirForum forum) { if (forum == null || forum.Name != _currentFolder.Name) { return; } Platform.UIThread(this, delegate { _thisForum = forum; if (frmCanvas.Items.Count > 0) { ForumPage forumFolderItem = (ForumPage) frmCanvas.Items[0]; forumFolderItem.Forum = _thisForum; forumFolderItem.InvalidateItem(); } }); }
/// <summary> /// Display the page for the specified forum. /// </summary> public override bool ViewFromFolder(FolderBase folder, Address address, FolderOptions flags) { if (folder is TopicFolder) { _currentFolder = folder as TopicFolder; _thisForum = CIX.DirectoryCollection.ForumByName(_currentFolder.Name); FoldersTree.SetTopicName(folder.Name); CIX.DirectoryCollection.RefreshForum(folder.Name); FillCanvas(); } return true; }
/// <summary> /// Notify that the moderator list has been updated. /// </summary> /// <param name="dirForum">The forum for which the list was updated</param> internal void NotifyModeratorsUpdated(DirForum dirForum) { if (ModeratorsUpdated != null) { ModeratorsUpdated(dirForum); } }
/// <summary> /// Notify that the participants list has been updated. /// </summary> /// <param name="dirForum">The forum for which the list was updated</param> internal void NotifyParticipantsUpdated(DirForum dirForum) { if (ParticipantsUpdated != null) { ParticipantsUpdated(dirForum); } }
/// <summary> /// Callback after the forum details are refreshed from the server, whether or not they /// succeed. The e.Forum parameter is null if the forum doesn't exist. /// </summary> private void OnForumUpdated(DirForum forum) { if (forum != null) { _forum = forum; LoadList(); } }
private void OnParticipantsUpdated(DirForum forum) { Platform.UIThread(this, delegate { if (forum == _forum) { LoadList(); } }); }
public ManageModerators(DirForum forum) { InitializeComponent(); _forum = forum; }