internal static MarketplaceAppCapabilitiesNode ParseXml(XmlReader reader) { var node = new MarketplaceAppCapabilitiesNode(); var capabilities = new List<MarketplaceAppCapabilityNode>(); var hardwareCapabilities = new List<MarketplaceAppHwCapabilityNode>(); while (reader.NodeType != XmlNodeType.EndElement) { switch (reader.Name) { case "capability": capabilities.Add(MarketplaceAppCapabilityNode.ParseXml(reader)); break; case "hwCapability": hardwareCapabilities.Add(MarketplaceAppHwCapabilityNode.ParseXml(reader)); break; default: reader.Skip(); break; } } node.Capabilities = capabilities.ToArray(); node.HardwareCapabilities = hardwareCapabilities.ToArray(); return node; }
internal static MarketplaceAppCapabilitiesNode ParseXml(XmlReader reader) { var node = new MarketplaceAppCapabilitiesNode(); var capabilities = new List <MarketplaceAppCapabilityNode>(); var hardwareCapabilities = new List <MarketplaceAppHwCapabilityNode>(); if (reader.IsEmptyElement) { reader.Skip(); } else { while (reader.NodeType != XmlNodeType.EndElement) { switch (reader.Name) { case "capability": capabilities.Add(MarketplaceAppCapabilityNode.ParseXml(reader)); break; case "hwCapability": hardwareCapabilities.Add(MarketplaceAppHwCapabilityNode.ParseXml(reader)); break; default: reader.Skip(); break; } } } node.Capabilities = capabilities.ToArray(); node.HardwareCapabilities = hardwareCapabilities.ToArray(); return(node); }
internal static MarketplaceAppEntryNode ParseXml(XmlReader reader) { var node = new MarketplaceAppEntryNode(); reader.ReadStartElement(); while (reader.NodeType != XmlNodeType.EndElement) { switch (reader.Name) { case "a:updated": node.Updated = reader.ReadElementContentAsNullable <DateTime>(); break; case "a:title": node.Title = MarketplaceAppContentNode.ParseXml(reader); break; case "a:id": node.Id = reader.ReadElementContentAsUrn(); break; case "version": node.Version = reader.ReadElementContentAsString(); break; case "payloadId": node.PayloadId = reader.ReadElementContentAsUrn(); break; case "skuId": node.SkuId = reader.ReadElementContentAsUrn(); break; case "skuLastUpdated": node.SkuLastUpdated = reader.ReadElementContentAsNullable <DateTime>(); break; case "isAvailableInCountry": node.IsAvailableInCountry = reader.ReadElementContentAsBoolean(); break; case "isAvailableInStore": node.IsAvailableInStore = reader.ReadElementContentAsBoolean(); break; case "isClientTypeCompatible": node.IsClientTypeCompatible = reader.ReadElementContentAsBoolean(); break; case "isHardwareCompatible": node.IsHardwareCompatible = reader.ReadElementContentAsBoolean(); break; case "isBlacklisted": node.IsBlacklisted = reader.ReadElementContentAsBoolean(); break; case "url": node.Url = reader.ReadElementContentAsString(); break; case "packageSize": node.PackageSize = reader.ReadElementContentAsInt(); break; case "installSize": node.InstallSize = reader.ReadElementContentAsInt(); break; case "clientTypes": node.ClientTypes = reader.ReadElementContentAsArray(x => x.ReadElementContentAsString()); break; case "supportedLanguages": node.SupportedLanguages = reader.ReadElementContentAsArray(x => x.ReadElementContentAsString()); break; case "deviceCapabilities": var deviceCapabilitiesString = reader.ReadElementContentAsString(); if (!string.IsNullOrEmpty(deviceCapabilitiesString)) { deviceCapabilitiesString = string.Format("<root>{0}</root>", HttpUtility.HtmlDecode(deviceCapabilitiesString)); using (var stringReader = new StringReader(deviceCapabilitiesString)) { using (var reader2 = XmlReader.Create(stringReader)) { reader2.ReadStartElement(); node.DeviceCapabilities = MarketplaceAppCapabilitiesNode.ParseXml(reader2); reader2.ReadEndElement(); } } } break; default: reader.Skip(); break; } } reader.ReadEndElement(); return(node); }