コード例 #1
0
        internal void AddUserToGroups(int userId, IEnumerable <int> parentGroupIds)
        {
            if (parentGroupIds == null)
            {
                return;
            }

            // place the new relations, skip old ones.
            foreach (var parentGroupId in parentGroupIds)
            {
                var parentGroup = EnsureGroup(parentGroupId);
                if (!parentGroup.UserMemberIds.Contains(userId))
                {
                    parentGroup.UserMemberIds.Add(userId);
                }
                Flattener.AddUserToGroup(userId, parentGroup, Membership);
            }
        }
コード例 #2
0
        /*========================================================================= In memory membership API */

        //TODO: When allowing parallel activities in the future, take care of thread safety!

        internal void AddMembers(int groupId, IEnumerable <int> groupIds, IEnumerable <int> userIds, IEnumerable <int> parentGroupIds)
        {
            // place the new relations, skip old ones.
            var group = EnsureGroup(groupId);

            if (userIds != null)
            {
                foreach (var userId in userIds)
                {
                    Flattener.AddUserToGroup(userId, group, Membership);
                    if (!group.UserMemberIds.Contains(userId))
                    {
                        group.UserMemberIds.Add(userId);
                    }
                }
            }
            if (groupIds != null)
            {
                foreach (var childGroupId in groupIds)
                {
                    var childGroup = EnsureGroup(childGroupId);
                    Flattener.AddGroupToGroup(childGroup, group, Membership);
                    AddRelation(group.Groups, childGroup);
                    AddRelation(childGroup.ParentGroups, group);
                }
            }
            if (parentGroupIds != null)
            {
                foreach (var parentGroupId in parentGroupIds)
                {
                    var parentGroup = EnsureGroup(parentGroupId);
                    Flattener.AddGroupToGroup(group, parentGroup, Membership);
                    AddRelation(group.ParentGroups, parentGroup);
                    AddRelation(parentGroup.Groups, group);
                }
            }
        }