Exemplo n.º 1
0
        public GroupWithPurposeResult GetGroupWithPurpose(int personId, Guid definedValueGuid)
        {
            GroupWithPurposeResult result = new GroupWithPurposeResult();

            result.PersonId      = personId;
            result.PersonInGroup = false;
            result.GroupList     = new List <GroupSummary>();

            // get person info
            Person person = new PersonService((Rock.Data.RockContext)Service.Context).Get(personId);

            if (person != null)
            {
                result.NickName = person.NickName;
                result.LastName = person.LastName;
            }

            var purposeValue = DefinedValueCache.Get(definedValueGuid);

            result.Purpose = purposeValue.Value;

            // determine if person is in a group with this purpose
            GroupMemberService groupMemberService = new GroupMemberService((Rock.Data.RockContext)Service.Context);

            IQueryable <GroupMember> groupMembershipsQuery = groupMemberService.Queryable("Person,GroupRole,Group")
                                                             .Where(t => t.Group.GroupType.GroupTypePurposeValueId == purposeValue.Id &&
                                                                    t.PersonId == personId &&
                                                                    t.GroupMemberStatus == GroupMemberStatus.Active &&
                                                                    t.Group.IsActive)
                                                             .OrderBy(g => g.GroupRole.Order);

            foreach (GroupMember member in groupMembershipsQuery)
            {
                result.PersonInGroup = true;
                GroupSummary group = new GroupSummary();
                group.GroupName = member.Group.Name;
                group.GroupId   = member.Group.Id;
                group.RoleName  = member.GroupRole.Name;

                result.GroupList.Add(group);
            }

            return(result);
        }
Exemplo n.º 2
0
        public GroupWithPurposeResult GetGroupWithPurpose( int personId, Guid definedValueGuid )
        {
            GroupWithPurposeResult result = new GroupWithPurposeResult();
            result.PersonId = personId;
            result.PersonInGroup = false;
            result.GroupList = new List<GroupSummary>();

            // get person info
            Person person = new PersonService( ( Rock.Data.RockContext ) Service.Context ).Get( personId );

            if ( person != null )
            {
                result.NickName = person.NickName;
                result.LastName = person.LastName;
            }

            var purposeValue = DefinedValueCache.Read( definedValueGuid );
            result.Purpose = purposeValue.Value;

            // determine if person is in a group with this purpose
            GroupMemberService groupMemberService = new GroupMemberService( ( Rock.Data.RockContext ) Service.Context );

            IQueryable<GroupMember> groupMembershipsQuery = groupMemberService.Queryable( "Person,GroupRole,Group" )
                                        .Where( t => t.Group.GroupType.GroupTypePurposeValueId == purposeValue.Id
                                                 && t.PersonId == personId
                                                 && t.GroupMemberStatus == GroupMemberStatus.Active
                                                 && t.Group.IsActive )
                                        .OrderBy( g => g.GroupRole.Order );

            foreach ( GroupMember member in groupMembershipsQuery )
            {
                result.PersonInGroup = true;
                GroupSummary group = new GroupSummary();
                group.GroupName = member.Group.Name;
                group.GroupId = member.Group.Id;
                group.RoleName = member.GroupRole.Name;

                result.GroupList.Add( group );
            }

            return result;
        }