Beispiel #1
0
        protected override bool HasChildItems(string path)
        {
            path = NormalizePath(path);

            if (PathIsDrive(path))
            {
                IFeedFolder root       = FeedsManager.RootFolder as IFeedFolder;
                IFeedsEnum  subFolders = root.Subfolders as IFeedsEnum;
                if (subFolders.Count > 0)
                {
                    return(true);
                }

                IFeedsEnum feeds = root.Feeds as IFeedsEnum;
                if (feeds.Count > 0)
                {
                    return(true);
                }
            }
            else
            {
                if (FeedsManager.ExistsFolder(path))
                {
                    IFeedFolder folder     = FeedsManager.GetFolder(path) as IFeedFolder;
                    IFeedsEnum  subFolders = folder.Subfolders as IFeedsEnum;
                    if (subFolders.Count > 0)
                    {
                        return(true);
                    }

                    IFeedsEnum feeds = folder.Feeds as IFeedsEnum;
                    if (feeds.Count > 0)
                    {
                        return(true);
                    }
                }

                if (FeedsManager.ExistsFeed(path))
                {
                    IFeed feed = FeedsManager.GetFeed(path) as IFeed;
                    return(feed.ItemCount > 0);
                }
            }
            return(false);
        }
Beispiel #2
0
        protected override void GetChildNames(string path, ReturnContainers returnContainers)
        {
            path = NormalizePath(path);

            WriteDebug("Listing names in " + path);

            bool unreadOnly = false;
            RuntimeDefinedParameterDictionary dic = DynamicParameters as RuntimeDefinedParameterDictionary;

            if (dic != null && dic.ContainsKey("Unread"))
            {
                RuntimeDefinedParameter rdp = dic["Unread"];
                unreadOnly = rdp.IsSet;
            }

            WriteDebug(unreadOnly ? "Unread items only" : "All items");
            // Checks if the path represented is a drive. This means that the
            // children of the path are folders and feeds
            if (PathIsDrive(path))
            {
                WriteDebug("Listing root folder folder names");

                IFeedFolder folder     = FeedsManager.RootFolder as IFeedFolder;
                IFeedsEnum  subFolders = folder.Subfolders as IFeedsEnum;
                foreach (IFeedFolder subFolder in subFolders)
                {
                    if (!unreadOnly || subFolder.TotalUnreadItemCount > 0)
                    {
                        WriteItemObject(subFolder.Name, subFolder.Path, true);
                    }
                }

                WriteDebug("Listing root folder feed names");

                IFeedsEnum feeds = folder.Feeds as IFeedsEnum;
                foreach (IFeed feed in feeds)
                {
                    if (!unreadOnly || feed.UnreadItemCount > 0)
                    {
                        WriteItemObject(feed.Name, feed.Path, true);
                    }
                }

                return;
            }

            if (FeedsManager.ExistsFolder(path))
            {
                WriteDebug("Listing folder names in " + path);

                IFeedFolder folder     = FeedsManager.GetFolder(path) as IFeedFolder;
                IFeedsEnum  subFolders = folder.Subfolders as IFeedsEnum;
                foreach (IFeedFolder subFolder in subFolders)
                {
                    if (!unreadOnly || subFolder.TotalUnreadItemCount > 0)
                    {
                        WriteItemObject(subFolder.Name, subFolder.Path, true);
                    }
                }

                WriteDebug("Listing feed names in " + path);

                IFeedsEnum feeds = folder.Feeds as IFeedsEnum;
                foreach (IFeed feed in feeds)
                {
                    if (!unreadOnly || feed.UnreadItemCount > 0)
                    {
                        WriteItemObject(feed.Name, feed.Path, true);
                    }
                }
                return;
            }

            if (FeedsManager.ExistsFeed(path))
            {
                WriteDebug("Listing names in " + path);

                IFeed      feed      = FeedsManager.GetFeed(path) as IFeed;
                IFeedsEnum feedItems = feed.Items as IFeedsEnum;
                foreach (IFeedItem feedItem in feedItems)
                {
                    if (!unreadOnly || !feedItem.IsRead)
                    {
                        WriteItemObject(feedItem.LocalId.ToString(), feed.Path + _pathSeparator + feedItem.LocalId, false);
                    }
                }
                return;
            }
        } // GetChildNames