private static bool TryFormatMediaRssGroup(MediaRssGroup groupToFormat, XNamespaceAliasSet namespaceAliases, ExtensionManifestDirectory extensionManifestDirectory, out XElement groupElement) { groupElement = default; if (groupToFormat == null) { return(false); } var childElements = new List <XElement>(); // contents foreach (var contentToFormat in groupToFormat.Contents ?? Enumerable.Empty <MediaRssContent>()) { if (TryFormatMediaRssContent(contentToFormat, namespaceAliases, extensionManifestDirectory, out var contentElement)) { childElements.Add(contentElement); } } // container if (TryFormatMediaRssContainer(groupToFormat, namespaceAliases, extensionManifestDirectory, out var containerChildElements)) { foreach (var containerChildElement in containerChildElements) { childElements.Add(containerChildElement); } } // extensions if (ExtensibleEntityFormatter.TryFormatXElementExtensions(groupToFormat, namespaceAliases, extensionManifestDirectory, out var extensionElements)) { childElements.AddRange(extensionElements); } if (!childElements.Any()) { return(false); } groupElement = new XElement(_media + "group", childElements); return(true); }
private static bool TryParseMediaRssGroup(XElement groupElement, XNamespace ns, ExtensionManifestDirectory extensionManifestDirectory, out MediaRssGroup parsedGroup) { parsedGroup = null; if (groupElement == null) { return(false); } // contents foreach (var contentElement in groupElement.Elements(ns + "content")) { if (TryParseMediaRssContent(contentElement, ns, extensionManifestDirectory, out var parsedContent)) { parsedGroup = parsedGroup ?? new MediaRssGroup(); parsedGroup.Contents.Add(parsedContent); } } // container ParseMediaRssContainer(groupElement, ns, extensionManifestDirectory, ref parsedGroup); if (parsedGroup == null) { return(false); } // extensions ExtensibleEntityParser.ParseXElementExtensions(groupElement, extensionManifestDirectory, parsedGroup); return(true); }