コード例 #1
0
    protected void usUsers_OnItemsSelected(object sender, EventArgs e)
    {
        // Remove old items
        string newValues = ValidationHelper.GetString(usUsers.Value, null);
        string items     = DataHelper.GetNewItemsInList(newValues, CurrentValues);

        if (!String.IsNullOrEmpty(items))
        {
            string[] newItems = items.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
            if (newItems != null)
            {
                // Add all new items to site
                foreach (string item in newItems)
                {
                    int userID = ValidationHelper.GetInteger(item, 0);

                    if (BoardID > 0)
                    {
                        // Remove message board from board
                        ModuleCommands.MessageBoardRemoveModeratorFromBoard(userID, BoardID);
                    }
                    else if (Node != null)
                    {
                        UserInfo ui = UserInfoProvider.GetUserInfo(userID);
                        if (ui != null)
                        {
                            // Remove user from treenode
                            AclItemInfoProvider.RemoveUser(NodeID, ui);
                        }
                    }
                    else if (ForumID > 0)
                    {
                        // Remove user from forum moderators
                        ModuleCommands.ForumsRemoveForumModerator(userID, ForumID);
                    }
                }
            }
        }

        // Add new items
        items = DataHelper.GetNewItemsInList(CurrentValues, newValues);
        if (!String.IsNullOrEmpty(items))
        {
            string[] newItems = items.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
            if (newItems != null)
            {
                // Add all new items to site
                foreach (string item in newItems)
                {
                    int userID = ValidationHelper.GetInteger(item, 0);

                    if (BoardID > 0)
                    {
                        // Add user to the message board
                        ModuleCommands.MessageBoardAddModeratorToBoard(userID, BoardID);
                    }
                    else if (Node != null)
                    {
                        UserInfo ui = UserInfoProvider.GetUserInfo(userID);
                        if (ui != null)
                        {
                            // Remove user from treenode
                            AclItemInfoProvider.SetUserPermissions(Node, 0, 0, ui);
                        }
                    }
                    else if (ForumID > 0)
                    {
                        // Add user to the forum moderators
                        ModuleCommands.ForumsAddForumModerator(userID, ForumID);
                    }
                }
            }
        }

        // Log synchronization task
        if (Node != null)
        {
            DocumentSynchronizationHelper.LogDocumentChange(Node, TaskTypeEnum.UpdateDocument, Node.TreeProvider);
        }

        RaiseOnChanged();
    }