Beispiel #1
0
        /// <summary>
        /// Given a groupType and groupRole, returns either -1 if they aren't the specified groupRole in the group,
        /// or the ID for the GROUP if they are.
        /// We can think about it like this because we know the user is SOME type of member for each Group in the list.
        /// </summary>
        public static int IsMemberTypeOfGroup(List <Rock.Client.Group> groups, int groupType, int groupRole)
        {
            // find all the groups of 'groupType' that
            List <Rock.Client.Group> groupList = groups.Where(g => g.GroupTypeId == groupType && g.IsActive == true).ToList( );

            if (groupList != null)
            {
                // now for each group, find the groupMember for the person we're looking for.
                foreach (Rock.Client.Group targetGroup in groupList)
                {
                    // there should really only be one result. How could the same member multiple times in a single group?
                    // but, just check for any result, and if we get one, return the target groupID.
                    Rock.Client.GroupMember groupMember = targetGroup.Members
                                                          .Where(m => m.GroupRoleId == groupRole && m.GroupMemberStatus == Client.Enums.GroupMemberStatus.Active)
                                                          .FirstOrDefault();

                    if (groupMember != null)
                    {
                        return(targetGroup.Id);
                    }
                }
            }

            return(-1);
        }
Beispiel #2
0
        public static void UpdatePersonRoleInFamily(Rock.Client.GroupMember groupMember, int childAdultGroupRoleId, HttpRequest.RequestResult resultHandler)
        {
            Rock.Client.GroupMember destGroupMember = new Rock.Client.GroupMember();

            // copy over all the other data
            destGroupMember.GroupMemberStatus = groupMember.GroupMemberStatus;
            destGroupMember.PersonId          = groupMember.PersonId;
            destGroupMember.Guid        = groupMember.Guid;
            destGroupMember.GroupId     = groupMember.GroupId;
            destGroupMember.GroupRoleId = childAdultGroupRoleId;
            destGroupMember.Id          = groupMember.Id;
            destGroupMember.IsSystem    = groupMember.IsSystem;

            RockApi.Put_GroupMembers(destGroupMember, Config.Instance.CurrentPersonAliasId, resultHandler);
        }
Beispiel #3
0
        static void UpdatePersonImageGroup(Rock.Client.Person person, int modifiedById, HttpRequest.RequestResult resultHandler)
        {
            string oDataFilter = string.Format("?$filter=PersonId eq {0} and GroupId eq {1}", person.Id, ApplicationGroup_PhotoRequest_ValueId);

            RockApi.Get_GroupMembers(oDataFilter, delegate(HttpStatusCode statusCode, string statusDescription, List <Rock.Client.GroupMember> model)
            {
                if (Rock.Mobile.Network.Util.StatusInSuccessRange(statusCode) == true)
                {
                    // if it's null, they are NOT in the group and we should POST. if it's valid,
                    // we can simply update the existing.
                    if (model.Count == 0)
                    {
                        Rock.Client.GroupMember groupMember = new Rock.Client.GroupMember();
                        groupMember.Guid              = Guid.NewGuid( );
                        groupMember.PersonId          = person.Id;
                        groupMember.GroupMemberStatus = GroupMemberStatus_Pending_ValueId;
                        groupMember.GroupId           = ApplicationGroup_PhotoRequest_ValueId;
                        groupMember.GroupRoleId       = GroupMemberRole_Member_ValueId;

                        RockApi.Post_GroupMembers(groupMember, modifiedById, resultHandler);
                    }
                    else
                    {
                        // otherwise, we'll do a PUT
                        Rock.Client.GroupMember groupMember = new Rock.Client.GroupMember();

                        // set the status to pending
                        groupMember.GroupMemberStatus = GroupMemberStatus_Pending_ValueId;

                        // and copy over all the other data
                        groupMember.PersonId    = model[0].PersonId;
                        groupMember.Guid        = model[0].Guid;
                        groupMember.GroupId     = model[0].GroupId;
                        groupMember.GroupRoleId = model[0].GroupRoleId;
                        groupMember.Id          = model[0].Id;
                        groupMember.IsSystem    = model[0].IsSystem;

                        RockApi.Put_GroupMembers(groupMember, modifiedById, resultHandler);
                    }
                }
                else
                {
                    // fail...
                    resultHandler(statusCode, statusDescription);
                }
            });
        }
Beispiel #4
0
            public static void Post_GroupMembers(Rock.Client.GroupMember groupMember, int modifiedById, HttpRequest.RequestResult requestHandler)
            {
                Rock.Client.GroupMemberEntity groupMemberEntity = new Rock.Client.GroupMemberEntity();
                groupMemberEntity.CopyPropertiesFrom(groupMember);

                if (modifiedById > 0)
                {
                    groupMemberEntity.ModifiedAuditValuesAlreadyUpdated = true;
                    groupMemberEntity.CreatedByPersonAliasId            = modifiedById;
                    groupMemberEntity.ModifiedByPersonAliasId           = modifiedById;
                }

                RestRequest request = GetRockRestRequest(Method.POST);

                request.AddBody(groupMemberEntity);

                string requestUrl = BaseUrl + EndPoint_GroupMembers;

                Request.ExecuteAsync(requestUrl, request, requestHandler);
            }
Beispiel #5
0
        public static void GetPersonForEdit(Rock.Client.GroupMember groupMember, PersonEditResponseDelegate response)
        {
            // get their attributes before presenting.
            ApplicationApi.GetPersonById(groupMember.Person.Id, true,
                                         delegate(System.Net.HttpStatusCode statusCode, string statusDescription, Rock.Client.Person refreshedPerson)
            {
                if (Rock.Mobile.Network.Util.StatusInSuccessRange(statusCode) && refreshedPerson != null)
                {
                    // get the people allowed to check them in
                    string query = string.Format("?personId={0}&relationshipRoleId={1}", groupMember.Person.Id, Config.Instance.AllowedCheckInByRole.Id);

                    RockApi.Get_GroupMembers_KnownRelationships(query, delegate(HttpStatusCode knownRelationshipCode, string knownRelationshipDesc, List <Rock.Client.GroupMember> groupMembers)
                    {
                        if (Rock.Mobile.Network.Util.StatusInSuccessRange(statusCode))
                        {
                            // and lastly, from that, get the families of these group members
                            if (groupMembers.Count > 0)
                            {
                                GroupMembersToFamilyGroups(refreshedPerson, groupMembers, response);
                            }
                            else
                            {
                                response(refreshedPerson, null);
                            }
                        }
                        else
                        {
                            response(null, null);
                        }
                    });
                }
                else
                {
                    response(null, null);
                }
            });
        }
        public static void UpdatePersonRoleInFamily( Rock.Client.GroupMember groupMember, int childAdultGroupRoleId, HttpRequest.RequestResult resultHandler )
        {
            Rock.Client.GroupMember destGroupMember = new Rock.Client.GroupMember();

            // copy over all the other data
            destGroupMember.GroupMemberStatus = groupMember.GroupMemberStatus;
            destGroupMember.PersonId = groupMember.PersonId;
            destGroupMember.Guid = groupMember.Guid;
            destGroupMember.GroupId = groupMember.GroupId;
            destGroupMember.GroupRoleId = childAdultGroupRoleId;
            destGroupMember.Id = groupMember.Id;
            destGroupMember.IsSystem = groupMember.IsSystem;

            RockApi.Put_GroupMembers( destGroupMember, Config.Instance.CurrentPersonAliasId, resultHandler );
        }