internal static WindowsPhoneStoreServiceAppEntryNode ParseXml(XmlReader reader) { var node = new WindowsPhoneStoreServiceAppEntryNode(); reader.ReadStartElement(); while (reader.NodeType != XmlNodeType.EndElement) { switch (reader.Name) { case "a:updated": node.Updated = reader.ReadElementContentAsNullable <DateTime>(); break; case "a:title": node.Title = WindowsPhoneStoreServiceAppContentNode.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>", deviceCapabilitiesString); using (var stringReader = new StringReader(deviceCapabilitiesString)) { using (var reader2 = XmlReader.Create(stringReader)) { reader2.ReadStartElement(); node.DeviceCapabilities = WindowsPhoneStoreServiceAppCapabilitiesNode.ParseXml(reader2); reader2.ReadEndElement(); } } } break; default: reader.Skip(); break; } } reader.ReadEndElement(); return(node); }
internal static WindowsPhoneStoreServiceAppNode ParseXml(XmlReader reader) { var node = new WindowsPhoneStoreServiceAppNode(); reader.ReadStartElement(); while (reader.NodeType != XmlNodeType.EndElement) { switch (reader.Name) { case "a:updated": node.Updated = reader.ReadElementContentAsNullable <DateTime>(); break; case "a:title": node.Title = reader.ReadElementContentAsString(); break; case "a:id": node.Id = reader.ReadElementContentAsUrn(); break; case "a:content": node.Content = WindowsPhoneStoreServiceAppContentNode.ParseXml(reader); break; case "iapCount": node.IapCount = reader.ReadElementContentAsInt(); break; case "userRatingCountDistributions": node.UserRatingCountDistributions = WindowsPhoneStoreServiceAppRatingsDistributionsNode.ParseXml(reader); break; case "sortTitle": node.SortTitle = reader.ReadElementContentAsString(); break; case "releaseDate": node.ReleaseDate = reader.ReadElementContentAsNullable <DateTime>(); break; case "visibilityStatus": node.VisibilityStatus = reader.ReadElementContentAsString(); break; case "publisher": node.Publisher = reader.ReadElementContentAsString(); break; case "averageUserRating": node.AverageUserRating = reader.ReadElementContentAsDouble(); break; case "userRatingCount": node.UserRatingCount = reader.ReadElementContentAsInt(); break; case "image": node.Image = WindowsPhoneStoreServiceAppImageNode.ParseXml(reader); break; case "screenshots": node.Screenshots = reader.ReadElementContentAsArray(WindowsPhoneStoreServiceAppImageNode.ParseXml); break; case "categories": node.Categories = reader.ReadElementContentAsArray(WindowsPhoneStoreServiceAppCategoryNode.ParseXml); break; case "tags": node.Tags = reader.ReadElementContentAsArray(x => x.ReadElementContentAsString()); break; case "taxString": node.TaxString = reader.ReadElementContentAsString(); break; case "backgroundImage": node.BackgroundImage = WindowsPhoneStoreServiceAppImageNode.ParseXml(reader); break; case "offers": node.Offers = reader.ReadElementContentAsArray(WindowsPhoneStoreServiceAppOfferNode.ParseXml); break; case "publisherId": node.PublisherId = reader.ReadElementContentAsString(); break; case "publisherGuid": node.PublisherGuid = reader.ReadElementContentAsUrn(); break; case "a:entry": node.Entry = WindowsPhoneStoreServiceAppEntryNode.ParseXml(reader); break; case "isUniversal": node.IsUniversal = reader.ReadElementContentAsBoolean(); break; default: reader.Skip(); break; } } reader.ReadEndElement(); return(node); }