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); }
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); }