internal static HealthRecordView CreateFromXml(XPathNavigator nav, HealthVaultConfiguration configuration) { HealthRecordView view = new HealthRecordView(configuration); XPathNodeIterator sectionsIterator = nav.Select("section"); foreach (XPathNavigator sectionNav in sectionsIterator) { switch (sectionNav.Value) { case "core": view.Sections |= ThingSections.Core; break; case "audits": view.Sections |= ThingSections.Audits; break; case "blobpayload": view.Sections |= ThingSections.BlobPayload; break; case "effectivepermissions": view.Sections |= ThingSections.EffectivePermissions; break; case "tags": view.Sections |= ThingSections.Tags; break; case "digitalsignatures": view.Sections |= ThingSections.Signature; break; } } XPathNodeIterator xmlTransformsIterator = nav.Select("xml"); foreach (XPathNavigator xmlTransformNav in xmlTransformsIterator) { string transformName = xmlTransformNav.Value; if (transformName.Length == 0) { view.Sections |= ThingSections.Xml; } else { view.TransformsToApply.Add(transformName); } } XPathNodeIterator typeFormatIterator = nav.Select("type-version-format"); foreach (XPathNavigator typeFormatNav in typeFormatIterator) { Guid typeFormat = new Guid(typeFormatNav.Value); view.TypeVersionFormat.Add(typeFormat); } return(view); }
internal static ThingQuery CreateFromXml(XPathNavigator nav, HealthVaultConfiguration configuration) { ThingQuery filter = new ThingQuery(); XPathNavigator groupNav = nav.SelectSingleNode("group"); string name = groupNav.GetAttribute("name", string.Empty); if (!string.IsNullOrEmpty(name)) { filter.Name = name; } string maxString = groupNav.GetAttribute("max", string.Empty); filter.MaxItemsReturned = TryGetXmlInt32Value(maxString); string maxFullString = groupNav.GetAttribute("max-full", string.Empty); filter.MaxFullItemsReturnedPerRequest = TryGetXmlInt32Value(maxFullString); XPathNodeIterator thingIdIterator = groupNav.Select("id"); foreach (XPathNavigator thingIdNav in thingIdIterator) { string versionStamp = thingIdNav.GetAttribute("version-stamp", string.Empty); filter.ItemKeys.Add( new ThingKey( new Guid(thingIdNav.Value), new Guid(versionStamp))); } XPathNodeIterator clientIdIterator = groupNav.Select("client-thing-id"); foreach (XPathNavigator clientIdNav in clientIdIterator) { filter.ClientItemIds.Add(clientIdNav.Value); } ParseOrderByClauses(groupNav, filter); XPathNavigator filterNav = groupNav.SelectSingleNode("filter"); ParseFilterNavValue(filterNav, filter); XPathNavigator currentVersionNav = groupNav.SelectSingleNode("current-version-only"); if (currentVersionNav != null) { filter.CurrentVersionOnly = currentVersionNav.ValueAsBoolean; } XPathNavigator viewNav = groupNav.SelectSingleNode("format"); filter.View = HealthRecordView.CreateFromXml(viewNav, configuration); return(filter); }
public TypeList(HealthRecordView view, bool?configuration = null) { _useLegacyTypeVersionSupport = configuration ?? Ioc.Get <HealthVaultConfiguration>().UseLegacyTypeVersionSupport; _view = view; }