コード例 #1
0
        private Group CreateTestGroup(RockContext rockContext, ElevatedSecurityLevel elevatedSecurityLevel)
        {
            var groupGuid     = Guid.NewGuid();
            var groupTypeGuid = Guid.NewGuid();

            var group = new Group
            {
                Name                  = $"Test Group {groupGuid}",
                IsSecurityRole        = true,
                Guid                  = groupGuid,
                ElevatedSecurityLevel = elevatedSecurityLevel,
                GroupType             = new GroupType
                {
                    Name = $"Test Group Type {groupTypeGuid}",
                    Guid = groupTypeGuid,
                },
            };

            var groupService = new GroupService(rockContext);

            groupService.Add(group);
            rockContext.SaveChanges();

            var groupTypeRole = new GroupTypeRole
            {
                Name        = "Test Role",
                GroupTypeId = group.GroupTypeId
            };
            var groupTypeRoleService = new GroupTypeRoleService(rockContext);

            groupTypeRoleService.Add(groupTypeRole);
            rockContext.SaveChanges();

            return(group);
        }
コード例 #2
0
        private void CreateTestSecurityGroupWithPersonAsMember(int personId, ElevatedSecurityLevel securityLevel)
        {
            var securityGroupGuid = Guid.NewGuid();
            var createGroupScript = $@"INSERT INTO [Group] (
	            [IsSystem]
	            , [GroupTypeId]
	            , [Name]
	            , [IsSecurityRole]
	            , [IsActive]
	            , [Order]
	            , [Guid]
	            , [IsPublic]
	            , [IsArchived]
	            , [SchedulingMustMeetRequirements]
	            , [AttendanceRecordRequiredForCheckIn]
	            , [DisableScheduleToolboxAccess]
	            , [DisableScheduling]
	            , [ElevatedSecurityLevel]
            ) VALUES (
	            0 --IsSystem
	            , 1 --GroupTypeId
	            , '{securityLevel} Security Group'--Name
	            , 1--IsSecurityRole
	            , 1--IsActive
	            , 5--Order
	            , '{securityGroupGuid}'--Guid
	            , 0--IsPublic
	            , 0--IsArchived
	            , 0--SchedulingMustMeetRequirements
	            , 0--AttendanceRecordRequiredForCheckIn
	            , 1--DisableScheduleToolboxAccess
	            , 1--DisableScheduling
	            , ${securityLevel.ConvertToInt()}--ElevatedSecurityLevel
            )";

            using (var rockContext = new RockContext())
            {
                rockContext.Database.ExecuteSqlCommand(createGroupScript);
                var group = new GroupService(rockContext).Get(securityGroupGuid);

                var createGroupMemeberScript = $@"INSERT INTO [GroupMember] (
	                [IsSystem]
	                , [GroupId]
	                , [PersonId]
	                , [GroupRoleId]
	                , [GroupMemberStatus]
	                , [Guid]
	                , [IsNotified]
	                , [IsArchived]
	                , [CommunicationPreference]
                ) VALUES (
	                0 --IsSystem
	                , {group.Id}--GroupId
	                , {personId}--PersonId
	                , 1 --GroupRoleId
	                , 1 --GroupMemberStatus
	                , '{Guid.NewGuid()}'--Guid
	                , 0--IsNotified
	                , 0--IsArchived
	                , 0--CommunicationPreference
                )";
                rockContext.Database.ExecuteSqlCommand(createGroupMemeberScript);
            }
        }