using System; using System.Collections.Generic; using System.Linq; using CodeHollow.FeedReader; using MudBlazor; using SharpRss.Models; using ToolQit; namespace WebSharpRSS.Models { public class TreeItemData { public TreeItemData(CategoryModel catModel) { CategoryModel = catModel; Feeds = CategoryModel.Feeds.Where(x => x.Base != null).Select(x => new TreeItemData(x)).ToHashSet(); Title = CategoryModel.Name; Icon = Icons.Material.Filled.RssFeed; } public TreeItemData(FeedModel feedModel) { FeedModel = feedModel; Feed = FeedModel.Base; Title = Feed.Title; string faviconAddress = Feed.Link.Remove(Feed.Link.IndexOf("http", StringComparison.Ordinal), Feed.Link.IndexOf("://", StringComparison.Ordinal) + 3); FaviconUrl = string.Format(Caretaker.Settings["Paths"].GetString("FaviconResolveUrl"), faviconAddress); } public readonly CategoryModel? CategoryModel; public readonly FeedModel? FeedModel; public string Title { get; set; } = string.Empty; public bool IsSelected { get; set; } public string? Icon { get; set; } public string? FaviconUrl { get; set; } // Category public bool IsExpanded { get; set; } public HashSet? Feeds { get; set; } // Feed public Feed? Feed { get; set; } } }