示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#3
0
 public TypeList(HealthRecordView view, bool?configuration = null)
 {
     _useLegacyTypeVersionSupport = configuration ?? Ioc.Get <HealthVaultConfiguration>().UseLegacyTypeVersionSupport;
     _view = view;
 }