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