public virtual async Task <PersonInfo> GetPersonInfoAsync() { HealthServiceResponseData responseData = await _connection.ExecuteAsync(HealthVaultMethods.GetPersonInfo, 1).ConfigureAwait(false); XPathExpression personPath = GetPersonXPathExpression(responseData.InfoNavigator); XPathNavigator infoNav = responseData.InfoNavigator.SelectSingleNode(personPath); return(PersonInfo.CreateFromXml(infoNav)); }
internal static async Task <GetAuthorizedPeopleResult> GetAuthorizedPeopleAsync( IHealthVaultConnection connection, Guid personIdCursor, Instant?authCreatedSinceDate, int numResults) { if (numResults < 0) { throw new ArgumentOutOfRangeException(nameof(numResults), Resources.GetAuthorizedPeopleNumResultsNegative); } StringBuilder parameters = new StringBuilder(256); XmlWriterSettings settings = SDKHelper.XmlUnicodeWriterSettings; settings.OmitXmlDeclaration = true; settings.ConformanceLevel = ConformanceLevel.Fragment; using (XmlWriter writer = XmlWriter.Create(parameters, settings)) { writer.WriteStartElement("parameters"); if (personIdCursor != Guid.Empty) { writer.WriteElementString("person-id-cursor", personIdCursor.ToString()); } if (authCreatedSinceDate != null) { writer.WriteElementString( "authorizations-created-since", SDKHelper.XmlFromInstant(authCreatedSinceDate.Value)); } if (numResults != 0) { writer.WriteElementString("num-results", numResults.ToString(CultureInfo.InvariantCulture)); } writer.WriteEndElement(); // parameters writer.Flush(); } HealthServiceResponseData responseData = await connection.ExecuteAsync(HealthVaultMethods.GetAuthorizedPeople, 1, parameters.ToString()).ConfigureAwait(false); Collection <PersonInfo> personInfos = new Collection <PersonInfo>(); XPathExpression navExp = SDKHelper.GetInfoXPathExpressionForMethod( responseData.InfoNavigator, "GetAuthorizedPeople"); XPathNavigator infoNav = responseData.InfoNavigator.SelectSingleNode(navExp); XPathNavigator nav = infoNav.SelectSingleNode("response-results/person-info"); if (nav != null) { do { PersonInfo personInfo = PersonInfo.CreateFromXml(nav); personInfos.Add(personInfo); }while (nav.MoveToNext("person-info", string.Empty)); nav.MoveToNext(); } else { nav = infoNav.SelectSingleNode("response-results/more-results"); } return(new GetAuthorizedPeopleResult(personInfos, nav.ValueAsBoolean)); }