/// <summary> /// Loads the by identifier. /// </summary> /// <param name="id">The identifier.</param> /// <returns></returns> public static Role LoadById(int id) { using (var rockContext = new RockContext()) { var securityGroupType = GroupTypeCache.Read(Rock.SystemGuid.GroupType.GROUPTYPE_SECURITY_ROLE.AsGuid(), rockContext); int securityGroupTypeId = securityGroupType != null ? securityGroupType.Id : 0; Rock.Model.GroupService groupService = new Rock.Model.GroupService(rockContext); Rock.Model.GroupMemberService groupMemberService = new Rock.Model.GroupMemberService(rockContext); Rock.Model.Group groupModel = groupService.Get(id); if (groupModel != null && (groupModel.IsSecurityRole == true || groupModel.GroupTypeId == securityGroupTypeId)) { var role = new Role(); role.Id = groupModel.Id; role.Name = groupModel.Name; role.People = new ConcurrentDictionary <Guid, bool>(); var groupMembersQry = groupMemberService.Queryable().Where(a => a.GroupId == groupModel.Id); // Add the members foreach (var personGuid in groupMembersQry .Where(m => m.GroupMemberStatus == Model.GroupMemberStatus.Active) .Select(m => m.Person.Guid) .ToList() .Distinct()) { role.People.TryAdd(personGuid, true); } role.IsSecurityTypeGroup = groupModel.GroupTypeId == securityGroupTypeId; return(role); } } return(null); }
/// <summary> /// Loads the by identifier. /// </summary> /// <param name="id">The identifier.</param> /// <returns></returns> public static Role LoadById( int id ) { using ( var rockContext = new RockContext() ) { var securityGroupType = GroupTypeCache.Read( Rock.SystemGuid.GroupType.GROUPTYPE_SECURITY_ROLE.AsGuid(), rockContext ); int securityGroupTypeId = securityGroupType != null ? securityGroupType.Id : 0; Rock.Model.GroupService groupService = new Rock.Model.GroupService( rockContext ); Rock.Model.GroupMemberService groupMemberService = new Rock.Model.GroupMemberService( rockContext ); Rock.Model.Group groupModel = groupService.Get( id ); if ( groupModel != null && groupModel.IsActive && ( groupModel.IsSecurityRole == true || groupModel.GroupTypeId == securityGroupTypeId ) ) { var role = new Role(); role.Id = groupModel.Id; role.Name = groupModel.Name; role.People = new ConcurrentDictionary<Guid,bool>(); var groupMembersQry = groupMemberService.Queryable().Where( a => a.GroupId == groupModel.Id ); // Add the members foreach ( var personGuid in groupMembersQry .Where( m => m.GroupMemberStatus == Model.GroupMemberStatus.Active ) .Select( m => m.Person.Guid ) .ToList() .Distinct() ) { role.People.TryAdd( personGuid, true ); } role.IsSecurityTypeGroup = groupModel.GroupTypeId == securityGroupTypeId; return role; } } return null; }