Message boards
List of examples:
Message boards
Updating a message board
/* NOTE: New message board can only be created in the Pages application using the Message board web part.
* The system automatically creates a message board after the first message is submitted on the page via the web part. */
// Gets a TreeProvider instance
TreeProvider tree = new TreeProvider(MembershipContext.AuthenticatedUser);
// Gets the page where the message board is located
TreeNode page = tree.SelectNodes()
.Path("/BoardPage")
.OnCurrentSite()
.TopN(1)
.FirstOrDefault();
if (page != null)
{
// Gets the message board based on its name and the related page
BoardInfo updateBoard = BoardInfoProvider.GetBoardInfo("BoardName", page.DocumentID);
if (updateBoard != null)
{
// Updates the board properties
updateBoard.BoardDisplayName = updateBoard.BoardDisplayName.ToLowerCSafe();
// Saves the updated message board to the database
BoardInfoProvider.SetBoardInfo(updateBoard);
}
}
Updating multiple message boards
// Prepares a where condition for loading all message boards whose name starts with 'New'
string where = "BoardName LIKE N'New%'";
// Gets the message boards that fulfill the condition
InfoDataSet<BoardInfo> boards = BoardInfoProvider.GetMessageBoards(where, null);
// Loops through individual message boards
foreach (BoardInfo board in boards)
{
// Updates the board properties
board.BoardDisplayName = board.BoardDisplayName.ToUpper();
// Saves the updated message board to the database
BoardInfoProvider.SetBoardInfo(board);
}
Adding users as message board moderators
// Gets a TreeProvider instance
TreeProvider tree = new TreeProvider(MembershipContext.AuthenticatedUser);
// Gets the page where the message board is located
TreeNode page = tree.SelectNodes()
.Path("/BoardPage")
.OnCurrentSite()
.TopN(1)
.FirstOrDefault();
if (page != null)
{
// Gets the message board based on its name and the related page
BoardInfo board = BoardInfoProvider.GetBoardInfo("BoardName", page.DocumentID);
if (board != null)
{
// Add the current users as a moderator of the message board
BoardModeratorInfoProvider.AddModeratorToBoard(MembershipContext.AuthenticatedUser.UserID, board.BoardID);
}
}
Removing moderators from message boards
// Gets a TreeProvider instance
TreeProvider tree = new TreeProvider(MembershipContext.AuthenticatedUser);
// Gets the page where the message board is located
TreeNode page = tree.SelectNodes()
.Path("/BoardPage")
.OnCurrentSite()
.TopN(1)
.FirstOrDefault();
if (page != null)
{
// Gets the message board based on its name and the related page
BoardInfo board = BoardInfoProvider.GetBoardInfo("MyNewBoard", page.DocumentID);
if (board != null)
{
// Gets the moderator relationship between the message board and the current user
BoardModeratorInfo boardModerator = BoardModeratorInfoProvider.GetBoardModeratorInfo(MembershipContext.AuthenticatedUser.UserID, board.BoardID);
if (boardModerator != null)
{
// Removes the moderator from the message board
BoardModeratorInfoProvider.DeleteBoardModeratorInfo(boardModerator);
}
}
}
Deleting a message board
// Gets a TreeProvider instance
TreeProvider tree = new TreeProvider(MembershipContext.AuthenticatedUser);
// Gets the page where the message board is located
TreeNode page = tree.SelectNodes()
.Path("/BoardPage")
.OnCurrentSite()
.TopN(1)
.FirstOrDefault();
if (page != null)
{
// Gets the message board based on its name and the related page
BoardInfo deleteBoard = BoardInfoProvider.GetBoardInfo("BoardName", page.DocumentID);
if (deleteBoard != null)
{
// Deletes the message board
BoardInfoProvider.DeleteBoardInfo(deleteBoard);
}
}
Message board messages
Creating a message on a message board
// Gets a TreeProvider instance
TreeProvider tree = new TreeProvider(MembershipContext.AuthenticatedUser);
// Gets the page where the message board is located
TreeNode page = tree.SelectNodes()
.Path("/BoardPage")
.OnCurrentSite()
.TopN(1)
.FirstOrDefault();
if (page != null)
{
// Gets the message board
BoardInfo board = BoardInfoProvider.GetBoardInfo("BoardName", page.DocumentID);
if (board != null)
{
// Creates a new message object
BoardMessageInfo newMessage = new BoardMessageInfo();
// Sets the message properties
newMessage.MessageUserName = MembershipContext.AuthenticatedUser.UserName;
newMessage.MessageText = "New message";
newMessage.MessageEmail = "user@localhost.local";
newMessage.MessageURL = "";
newMessage.MessageIsSpam = false;
newMessage.MessageApproved = true;
newMessage.MessageInserted = DateTime.Now;
newMessage.MessageBoardID = board.BoardID;
// Saves the message to the database
BoardMessageInfoProvider.SetBoardMessageInfo(newMessage);
}
}
Updating a message
// Gets a TreeProvider instance
TreeProvider tree = new TreeProvider(MembershipContext.AuthenticatedUser);
// Gets the page where the message board is located
TreeNode page = tree.SelectNodes()
.Path("/BoardPage")
.OnCurrentSite()
.TopN(1)
.FirstOrDefault();
if (page != null)
{
// Gets the message board
BoardInfo board = BoardInfoProvider.GetBoardInfo("BoardName", page.DocumentID);
if (board != null)
{
// Gets the first message from the selected board whose text starts with 'New message'
BoardMessageInfo updateMessage = BoardMessageInfoProvider.GetMessages()
.WhereStartsWith("MessageText", "New message")
.WhereEquals("MessageBoardID", board.BoardID)
.TopN(1)
.FirstOrDefault();
// Updates the message text
updateMessage.MessageText = updateMessage.MessageText.ToUpperCSafe();
// Saves the message to the database
BoardMessageInfoProvider.SetBoardMessageInfo(updateMessage);
}
}
Updating multiple messages
// Gets a TreeProvider instance
TreeProvider tree = new TreeProvider(MembershipContext.AuthenticatedUser);
// Gets the page where the message board is located
TreeNode page = tree.SelectNodes()
.Path("/BoardPage")
.OnCurrentSite()
.TopN(1)
.FirstOrDefault();
if (page != null)
{
// Get the message board
BoardInfo board = BoardInfoProvider.GetBoardInfo("BoardName", page.DocumentID);
if (board != null)
{
// Gets all messages from the selected board whose text starts with 'New message'
var messages = BoardMessageInfoProvider.GetMessages()
.WhereStartsWith("MessageText", "New message")
.WhereEquals("MessageBoardID", board.BoardID);
// Loops through individual messages
foreach (BoardMessageInfo modifyMessage in messages)
{
// Updates the message text
modifyMessage.MessageText = modifyMessage.MessageText.ToUpper();
// Saves the updated message to the database
BoardMessageInfoProvider.SetBoardMessageInfo(modifyMessage);
}
}
}
Deleting a message
// Gets a TreeProvider instance
TreeProvider tree = new TreeProvider(MembershipContext.AuthenticatedUser);
// Gets the page where the message board is located
TreeNode page = tree.SelectNodes()
.Path("/BoardPage")
.OnCurrentSite()
.TopN(1)
.FirstOrDefault();
if (page != null)
{
// Gets the message board
BoardInfo board = BoardInfoProvider.GetBoardInfo("BoardName", page.DocumentID);
if (board != null)
{
// Gets the first message from the selected board whose text starts with 'New message'
BoardMessageInfo deleteMessage = BoardMessageInfoProvider.GetMessages()
.WhereStartsWith("MessageText", "New message")
.WhereEquals("MessageBoardID", board.BoardID)
.TopN(1)
.FirstOrDefault();
if (deleteMessage != null)
{
// Deletes the message
BoardMessageInfoProvider.DeleteBoardMessageInfo(deleteMessage);
}
}
}
Message board subscriptions
Creating a message board subscription
// Creates a new message board subscription object
BoardSubscriptionInfo newSubscription = new BoardSubscriptionInfo();
// Gets a TreeProvider instance
TreeProvider tree = new TreeProvider(MembershipContext.AuthenticatedUser);
// Gets the page where the message board is located
TreeNode page = tree.SelectNodes()
.Path("/BoardPage")
.OnCurrentSite()
.TopN(1)
.FirstOrDefault();
if (page != null)
{
// Gets the message board
BoardInfo board = BoardInfoProvider.GetBoardInfo("BoardName", page.DocumentID);
if (board != null)
{
// Sets the subsription properties (subscribes the current user)
newSubscription.SubscriptionBoardID = board.BoardID;
newSubscription.SubscriptionUserID = MembershipContext.AuthenticatedUser.UserID;
newSubscription.SubscriptionEmail = MembershipContext.AuthenticatedUser.Email;
// Creates the message board subscription
BoardSubscriptionInfoProvider.SetBoardSubscriptionInfo(newSubscription);
}
}
Updating a message board subscription
// Gets a TreeProvider instance
TreeProvider tree = new TreeProvider(MembershipContext.AuthenticatedUser);
// Gets the page where the message board is located
TreeNode page = tree.SelectNodes()
.Path("/BoardPage")
.OnCurrentSite()
.TopN(1)
.FirstOrDefault();
if (page != null)
{
// Gets the message board
BoardInfo board = BoardInfoProvider.GetBoardInfo("BoardName", page.DocumentID);
if (board != null)
{
// Gets the message board subscription for the current user
BoardSubscriptionInfo updateSubscription = BoardSubscriptionInfoProvider.GetBoardSubscriptionInfo(board.BoardID, MembershipContext.AuthenticatedUser.UserID);
if (updateSubscription != null)
{
// Updates the subscription properties
updateSubscription.SubscriptionEmail = updateSubscription.SubscriptionEmail.ToLowerCSafe();
// Saves the updated subscription to the database
BoardSubscriptionInfoProvider.SetBoardSubscriptionInfo(updateSubscription);
}
}
}
Updating multiple message board subscriptions
// Gets a TreeProvider instance
TreeProvider tree = new TreeProvider(MembershipContext.AuthenticatedUser);
// Gets the page where the message board is located
TreeNode page = tree.SelectNodes()
.Path("/BoardPage")
.OnCurrentSite()
.TopN(1)
.FirstOrDefault();
if (page != null)
{
// Gets the message board
BoardInfo board = BoardInfoProvider.GetBoardInfo("BoardName", page.DocumentID);
if (board != null)
{
// Prepares a where condition for loading all subscriptions of the message board
string where = "SubscriptionBoardID = " + board.BoardID;
// Gets a DataSet containing all subscriptions of the selected message board
DataSet subscriptions = BoardSubscriptionInfoProvider.GetSubscriptions(where, null);
if (!DataHelper.DataSourceIsEmpty(subscriptions))
{
// Loops through individual subscriptions
foreach (DataRow subscriptionDr in subscriptions.Tables[0].Rows)
{
// Converts the DataRow to a subscription object
BoardSubscriptionInfo modifySubscription = new BoardSubscriptionInfo(subscriptionDr);
// Updates the subscription properties
modifySubscription.SubscriptionEmail = modifySubscription.SubscriptionEmail.ToUpper();
// Saves the modified subscription to the database
BoardSubscriptionInfoProvider.SetBoardSubscriptionInfo(modifySubscription);
}
}
}
}
Deleting a message board subscription
// Gets a TreeProvider instance
TreeProvider tree = new TreeProvider(MembershipContext.AuthenticatedUser);
// Gets the page where the message board is located
TreeNode page = tree.SelectNodes()
.Path("/BoardPage")
.OnCurrentSite()
.TopN(1)
.FirstOrDefault();
if (page != null)
{
// Gets the message board
BoardInfo board = BoardInfoProvider.GetBoardInfo("BoardName", page.DocumentID);
if (board != null)
{
// Gets the message board subscription for the current user
BoardSubscriptionInfo deleteSubscription = BoardSubscriptionInfoProvider.GetBoardSubscriptionInfo(board.BoardID, MembershipContext.AuthenticatedUser.UserID);
if (deleteSubscription != null)
{
// Deletes the message board subscription
BoardSubscriptionInfoProvider.DeleteBoardSubscriptionInfo(deleteSubscription);
}
}
}
Message board security
Allowing a message board only for members of a role
// Gets a TreeProvider instance
TreeProvider tree = new TreeProvider(MembershipContext.AuthenticatedUser);
// Gets the page where the message board is located
TreeNode page = tree.SelectNodes()
.Path("/BoardPage")
.OnCurrentSite()
.TopN(1)
.FirstOrDefault();
if (page != null)
{
// Gets the message board
BoardInfo board = BoardInfoProvider.GetBoardInfo("BoardName", page.DocumentID);
// Gets the role
RoleInfo role = RoleInfoProvider.GetRoleInfo("RoleName", SiteContext.CurrentSite.SiteID);
if ((board != null) && (role != null))
{
// Configures the message board to be usable only by assigned roles
board.BoardAccess = SecurityAccessEnum.AuthorizedRoles;
BoardInfoProvider.SetBoardInfo(board);
// Assigns the role to the message board (allows members of the role to use the message board)
BoardRoleInfoProvider.AddRoleToBoard(role.RoleID, board.BoardID);
}
}
Removing a role from a message board
// Gets a TreeProvider instance
TreeProvider tree = new TreeProvider(MembershipContext.AuthenticatedUser);
// Gets the page where the message board is located
TreeNode page = tree.SelectNodes()
.Path("/BoardPage")
.OnCurrentSite()
.TopN(1)
.FirstOrDefault();
if (page != null)
{
// Gets the message board
BoardInfo board = BoardInfoProvider.GetBoardInfo("NewBoard", page.DocumentID);
// Gets the role
RoleInfo role = RoleInfoProvider.GetRoleInfo("RoleName", SiteContext.CurrentSite.SiteID);
if ((board != null) && (role != null))
{
// Gets the relationship between the role and the message board
BoardRoleInfo boardRole = BoardRoleInfoProvider.GetBoardRoleInfo(role.RoleID, board.BoardID);
if (boardRole != null)
{
// Removes the role from the message board
BoardRoleInfoProvider.DeleteBoardRoleInfo(boardRole);
}
}
}