Exemple #1
0
        static void TryGetNewlyCreatedProfile(Rock.Client.Person person,
                                              bool isNewPhoneNumber,
                                              Rock.Client.PhoneNumber phoneNumber,
                                              List <KeyValuePair <string, string> > attributes,
                                              MemoryStream personImage,
                                              HttpRequest.RequestResult resultHandler)
        {
            ApplicationApi.GetPersonByGuid(person.Guid,
                                           delegate(System.Net.HttpStatusCode statusCode, string statusDescription, Rock.Client.Person model)
            {
                if (Rock.Mobile.Network.Util.StatusInSuccessRange(statusCode) == true)
                {
                    person = model;

                    // see if we should set their first time visit status
                    if (Config.Instance.RecordFirstVisit == true)
                    {
                        FamilyManagerApi.UpdateOrAddPersonAttribute(person.Id, Config.Instance.FirstTimeVisitAttrib.Key, DateTime.Now.ToString( ), null);
                    }

                    // now update pending attributes.
                    foreach (KeyValuePair <string, string> attribValue in attributes)
                    {
                        // just fire and forget these values.
                        FamilyManagerApi.UpdateOrAddPersonAttribute(person.Id, attribValue.Key, attribValue.Value, null);
                    }

                    // if there's a phone number to send, send it.
                    if (string.IsNullOrWhiteSpace(phoneNumber.Number) == false)
                    {
                        TryUpdateCellPhone(person, isNewPhoneNumber, phoneNumber, personImage, resultHandler);
                    }
                    else
                    {
                        TryUpdateProfilePic(person, personImage, resultHandler);
                    }
                }
                else
                {
                    resultHandler(statusCode, statusDescription);
                }
            });
        }