コード例 #1
0
        private static bool TryParseRss20Image(XElement imageElement, ExtensionManifestDirectory extensionManifestDirectory, out Rss20Image parsedImage)
        {
            parsedImage = default;

            if (imageElement == null)
            {
                return(false);
            }

            parsedImage             = new Rss20Image();
            parsedImage.Url         = imageElement.Element("url")?.Value.Trim();
            parsedImage.Title       = imageElement.Element("title")?.Value.Trim();
            parsedImage.Link        = imageElement.Element("link")?.Value.Trim();
            parsedImage.Description = imageElement.Element("description")?.Value.Trim();

            if (int.TryParse(imageElement.Element("width")?.Value.Trim(), NumberStyles.Any, CultureInfo.InvariantCulture, out var parsedWidth))
            {
                parsedImage.Width = parsedWidth;
            }

            if (int.TryParse(imageElement.Element("height")?.Value.Trim(), NumberStyles.Any, CultureInfo.InvariantCulture, out var parsedHeight))
            {
                parsedImage.Height = parsedHeight;
            }

            // extensions
            ExtensibleEntityParser.ParseXElementExtensions(imageElement, extensionManifestDirectory, parsedImage);

            return(true);
        }
コード例 #2
0
        private static bool TryFormatRss20Image(Rss20Image imageToFormat, XNamespaceAliasSet namespaceAliases, ExtensionManifestDirectory extensionManifestDirectory, out XElement imageElement)
        {
            imageElement = default;

            if (imageToFormat == null)
            {
                return(false);
            }

            imageElement = new XElement("image");

            imageElement.Add(new XElement("url")
            {
                Value = imageToFormat.Url ?? ""
            });
            imageElement.Add(new XElement("title")
            {
                Value = imageToFormat.Title ?? ""
            });
            imageElement.Add(new XElement("link")
            {
                Value = imageToFormat.Link ?? ""
            });

            if (imageToFormat.Height != null)
            {
                var heightString = imageToFormat.Height.Value.ToString(CultureInfo.InvariantCulture);
                imageElement.Add(new XElement("height")
                {
                    Value = heightString
                });
            }

            if (imageToFormat.Width != null)
            {
                var widthString = imageToFormat.Width.Value.ToString(CultureInfo.InvariantCulture);
                imageElement.Add(new XElement("width")
                {
                    Value = widthString
                });
            }

            if (TryFormatOptionalTextElement(imageToFormat.Description, "description", out var descriptionElement))
            {
                imageElement.Add(descriptionElement);
            }

            // extensions
            if (ExtensibleEntityFormatter.TryFormatXElementExtensions(imageToFormat, namespaceAliases, extensionManifestDirectory, out var extensionElements))
            {
                imageElement.AddRange(extensionElements);
            }

            return(true);
        }