public void DebugPossibleNamespaceDeclarations()
        {
            var sampleFeeds  = SampleFeedDirectory.GetSampleFeeds();
            var namespaceSet = new XNamespaceAliasSet();

            foreach (var feed in sampleFeeds)
            {
                var documentRoot = feed.XDocument?.Root;

                if (documentRoot == null)
                {
                    continue;
                }

                var namespaceDeclarations = documentRoot
                                            .Attributes()
                                            .Where(x => x.IsNamespaceDeclaration)
                                            .ToList();

                foreach (var namespaceDeclaration in namespaceDeclarations)
                {
                    var alias = namespaceDeclaration.Name.LocalName;
                    if (alias == "xmlns")
                    {
                        alias = null;
                    }

                    namespaceSet.EnsureNamespaceAlias(alias, namespaceDeclaration.Value);
                }
            }

            Debugger.Break(); // take a look at "namespaceSet"
        }
        public void DebugRootNodes()
        {
            var sampleFeeds = SampleFeedDirectory.GetSampleFeeds();

            // ReSharper disable once UnusedVariable
            var feedsByRoot = sampleFeeds
                              .Where(x => x.XDocument != null)
                              .GroupBy(feed => feed.XDocument.Root?.Name.LocalName)
                              .ToDictionary(x => x.Key, x => x.ToList());

            Debugger.Break(); // take a look at "feedsByRoot"
        }
        public void DebugInvalidXml()
        {
            var sampleFeeds = SampleFeedDirectory.GetSampleFeeds();

            var feed = sampleFeeds
                       .First(x => x.FileName == "feeds-feedburner-com-seomoz.xml");

            // ReSharper disable once UnusedVariable
            var doc = feed.XDocument;

            Debugger.Break();
        }
        public void DebugRssGenerators()
        {
            var sampleFeeds = SampleFeedDirectory.GetSampleFeeds();

            // ReSharper disable once UnusedVariable
            var feedsByGenerator = sampleFeeds
                                   .Where(x => x.XDocument != null)
                                   .Select(x =>
            {
                var tryParseResult = Rss20FeedParser.TryParseRss20Feed(x.XDocument, out var rss20Feed);
                return(feed: x, rss20Feed, tryParseResult);
            })
                                   .Where(x => x.tryParseResult)
                                   .Select(x => (x.feed, generator: x.rss20Feed.Channel?.Generator))
                                   .GroupBy(x => x.generator ?? string.Empty, x => x.feed)
                                   .ToDictionary(x => x.Key, x => x.ToList());

            Debugger.Break(); // take a look at "feedsByGenerator"
        }