internal static WindowsPhoneStoreServiceAppOfferNode ParseXml(XmlReader reader)
        {
            var node = new WindowsPhoneStoreServiceAppOfferNode();

            reader.ReadStartElement();

            while (reader.NodeType != XmlNodeType.EndElement)
            {
                switch (reader.LocalName)
                {
                case "offerId":
                    node.OfferId = reader.ReadElementContentAsUrn();
                    break;

                case "mediaInstanceId":
                    node.MediaInstanceId = reader.ReadElementContentAsUrn();
                    break;

                case "clientTypes":
                    node.ClientTypes = reader.ReadElementContentAsArray(x => x.ReadElementContentAsString());
                    break;

                case "paymentTypes":
                    node.PaymentTypes = reader.ReadElementContentAsArray(x => x.ReadElementContentAsString());
                    break;

                case "store":
                    node.Store = reader.ReadElementContentAsString();
                    break;

                case "price":
                    node.Price = reader.ReadElementContentAsDouble();
                    break;

                case "displayPrice":
                    node.DisplayPrice = reader.ReadElementContentAsString();
                    break;

                case "priceCurrencyCode":
                    node.PriceCurrencyCode = reader.ReadElementContentAsString();
                    break;

                case "licenseRight":
                    node.LicenseRight = reader.ReadElementContentAsString();
                    break;

                case "expiration":
                    node.Expiration = reader.ReadElementContentAsNullable <DateTime>();
                    break;

                default:
                    reader.Skip();
                    break;
                }
            }

            reader.ReadEndElement();

            return(node);
        }
Esempio n. 2
0
        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);
        }
        internal static MarketplaceAppNode ParseXml(XmlReader reader)
        {
            var node = new MarketplaceAppNode();

            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 = MarketplaceAppContentNode.ParseXml(reader);
                    break;

                case "iapCount":
                    node.IapCount = reader.ReadElementContentAsInt();
                    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 = MarketplaceAppImageNode.ParseXml(reader);
                    break;

                case "screenshots":
                    node.Screenshots = reader.ReadElementContentAsArray(MarketplaceAppImageNode.ParseXml);
                    break;

                case "categories":
                    node.Categories = reader.ReadElementContentAsArray(MarketplaceAppCategoryNode.ParseXml);
                    break;

                case "tags":
                    node.Tags = reader.ReadElementContentAsArray(x => x.ReadElementContentAsString());
                    break;

                case "taxString":
                    node.TaxString = reader.ReadElementContentAsString();
                    break;

                case "backgroundImage":
                    node.BackgroundImage = MarketplaceAppImageNode.ParseXml(reader);
                    break;

                case "offers":
                    node.Offers = reader.ReadElementContentAsArray(MarketplaceAppOfferNode.ParseXml);
                    break;

                case "publisherId":
                    node.PublisherId = reader.ReadElementContentAsString();
                    break;

                case "publisherGuid":
                    node.PublisherGuid = reader.ReadElementContentAsUrn();
                    break;

                case "a:entry":
                    node.Entry = MarketplaceAppEntryNode.ParseXml(reader);
                    break;

                default:
                    reader.Skip();
                    break;
                }
            }

            reader.ReadEndElement();

            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;
        }
Esempio n. 5
0
        internal static WindowsStoreServiceAppPackageNode ParseXml(XmlReader reader)
        {
            var node = new WindowsStoreServiceAppPackageNode();

            reader.ReadStartElement();

            while (reader.NodeType != XmlNodeType.EndElement)
            {
                switch (reader.Name)
                {
                case "I":
                    node.Id = reader.ReadElementContentAsString();
                    break;

                case "R":
                    node.ReleaseId = reader.ReadElementContentAsString();
                    break;

                case "Pfn":
                    node.FamilyName = reader.ReadElementContentAsString();
                    break;

                case "L":
                    node.Language = reader.ReadElementContentAsString();
                    break;

                case "T":
                    node.Title = reader.ReadElementContentAsString();
                    break;

                case "Ico":
                    node.Icon = reader.ReadElementContentAsString();
                    break;

                case "Bg":
                    node.BackgroundColor = reader.ReadElementContentAsString();
                    break;

                case "Fg":
                    node.ForegroundColor = reader.ReadElementContentAsString();
                    break;

                case "Cs":
                    node.CurrencySymbol = reader.ReadElementContentAsString();
                    break;

                case "Cc":
                    node.Currency = reader.ReadElementContentAsString();
                    break;

                case "P":
                    node.Price = reader.ReadElementContentAsDouble();
                    break;

                case "C":
                    node.Category = WindowsStoreServiceAppCategoryNode.ParseXml(reader);
                    break;

                case "Sc":
                    node.SubCategory = WindowsStoreServiceAppCategoryNode.ParseXml(reader);
                    break;

                case "Lud":
                    node.LastUpdate = reader.ReadElementContentAsNullable <DateTime>();
                    break;

                default:
                    reader.Skip();
                    break;
                }
            }

            reader.ReadEndElement();

            return(node);
        }