diff --git a/SharpRss/RssService.cs b/SharpRss/RssService.cs index 46cecba..e6c13c7 100644 --- a/SharpRss/RssService.cs +++ b/SharpRss/RssService.cs @@ -43,7 +43,10 @@ namespace SharpRss public async Task> GetAllFeeds() { - return new HashSet(); + HashSet fSet = new HashSet(); + fSet.UnionWith(feedSet); + fSet.UnionWith(feedSet2); + return fSet; } diff --git a/WebSharpRSS/Models/TreeItemData.cs b/WebSharpRSS/Models/TreeItemData.cs index 1f435b8..d64fb57 100644 --- a/WebSharpRSS/Models/TreeItemData.cs +++ b/WebSharpRSS/Models/TreeItemData.cs @@ -34,11 +34,31 @@ namespace WebSharpRSS.Models public bool IsSelected { get; set; } public string? Icon { get; set; } public string? FaviconUrl { get; set; } - + // Category + public bool HasChild => Feeds != null; public bool IsExpanded { get; set; } public HashSet? Feeds { get; set; } // Feed public Feed? Feed { get; set; } + public int FeeditemCount + { + get + { + if (CategoryModel != null && Feeds != null) + { + int feedsCount = 0; + foreach (var item in Feeds) + { + if (item.Feed != null) + feedsCount += item.FeeditemCount; + } + return feedsCount; + } + else if (Feed != null) + return Feed.Items.Count; + return 0; + } + } } } \ No newline at end of file diff --git a/WebSharpRSS/Shared/SideGuide.razor b/WebSharpRSS/Shared/SideGuide.razor index 316f8c7..27923a1 100644 --- a/WebSharpRSS/Shared/SideGuide.razor +++ b/WebSharpRSS/Shared/SideGuide.razor @@ -3,6 +3,7 @@ @using CodeHollow.FeedReader @using Serilog @using WebSharpRSS.Models; +@using ToolQit.Extensions; @inject RssService _rssService @@ -10,21 +11,47 @@ Home + + Feeds - + + +
+
+ + @if (context.FaviconUrl.IsNullEmptyWhiteSpace() && context.Icon != null) + { + + } + else + { + + } + @context.Title +
+
+ @context.FeeditemCount +
+
+
+
@code { public HashSet Categories = new HashSet(); - private TreeItemData ActivatedItem { get; set; } - private TreeItemData SelectedItem { get; set; } + private TreeItemData? ActivatedItem { get; set; } + private TreeItemData? SelectedItem { get; set; } protected override async void OnInitialized() { Log.Verbose("Loading guide data..."); + HashSet cats = await _rssService.GetCategories(); - await Task.Run(() => Categories = cats.Select(x => new TreeItemData(x)).ToHashSet()); + await Task.Run(() => Categories.UnionWith(cats.Select(x => new TreeItemData(x)).ToHashSet())); + + Log.Verbose(" Guide initialized!"); + //await Task.Run(() => Categories = cats.Select(x => new TreeItemData(x)).ToHashSet()); } } \ No newline at end of file