Ejemplo n.º 1
0
        public static bool TryFormatRss10SlashExtension(Rss10SlashExtension extensionToFormat, XNamespaceAliasSet namespaceAliases, out IList <XElement> elements)
        {
            elements = default;

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

            elements = new List <XElement>();

            if (TryFormatRss10SlashTextElement(extensionToFormat.Section, "section", namespaceAliases, out var sectionElement))
            {
                elements.Add(sectionElement);
            }

            if (TryFormatRss10SlashTextElement(extensionToFormat.Department, "department", namespaceAliases, out var departmentElement))
            {
                elements.Add(departmentElement);
            }

            if (TryFormatRss10SlashComments(extensionToFormat.Comments, namespaceAliases, out var commentsElement))
            {
                elements.Add(commentsElement);
            }

            if (TryFormatRss10SlashHitParade(extensionToFormat.HitParade, namespaceAliases, out var hitParadeElement))
            {
                elements.Add(hitParadeElement);
            }

            if (!elements.Any())
            {
                return(false);
            }

            return(true);
        }
        public static bool TryParseRss10SlashExtension(XElement parentElement, out Rss10SlashExtension extension)
        {
            extension = null;

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

            foreach (var ns in Rss10SlashExtensionConstants.RecognizedNamespaces)
            {
                if (TryParseRss10SlashTextElement(parentElement.Element(ns + "section"), out var parsedSection))
                {
                    extension         = extension ?? new Rss10SlashExtension();
                    extension.Section = parsedSection;
                }

                if (TryParseRss10SlashTextElement(parentElement.Element(ns + "department"), out var parsedDepartment))
                {
                    extension            = extension ?? new Rss10SlashExtension();
                    extension.Department = parsedDepartment;
                }

                if (TryParseRss10SlashComments(parentElement.Element(ns + "comments"), out var parsedComments))
                {
                    extension          = extension ?? new Rss10SlashExtension();
                    extension.Comments = parsedComments;
                }

                if (TryParseRss10SlashHitParade(parentElement.Element(ns + "hit_parade"), out var parsedHitParade))
                {
                    extension           = extension ?? new Rss10SlashExtension();
                    extension.HitParade = parsedHitParade;
                }
            }

            return(extension != null);
        }