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); } }); }