SharpRSS/WebSharpRSS/Models/TreeItemData.cs

43 lines
1.5 KiB
C#

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using MudBlazor;
using SharpRss;
using SharpRss.Models;
using ToolQit;
namespace WebSharpRSS.Models
{
public class TreeItemData
{
public TreeItemData(CategoryModel categoryModel)
{
CategoryModel = categoryModel;
Title = categoryModel.Name;
Icon = categoryModel.Icon == string.Empty ? Icons.Material.Filled.RssFeed : categoryModel.Icon;
HasChildren = CategoryModel.FeedCount > 0;
}
public TreeItemData(FeedModel feedModel)
{
FeedModel = feedModel;
Title = feedModel.Title ?? string.Empty;
if (FeedModel.EncodedUrl == null) return;
FaviconUrl = string.Format(Caretaker.Settings["Paths"].GetString("FaviconResolveUrl"), new Uri(SyndicationManager.DecodeUrl(FeedModel.EncodedUrl)).Host);
TotalItems = FeedModel.ItemCount;
}
public readonly CategoryModel? CategoryModel;
public readonly FeedModel? FeedModel;
public HashSet<TreeItemData>? Children { get; set; }
public string Title { get; set; }
public bool IsSelected { get; set; }
public string? Icon { get; set; }
public string? FaviconUrl { get; set; }
public bool HasChildren { get; set; }
public bool Loading { get; set; }
public bool IsExpanded { get; set; }
public int TotalItems { get; set; }
}
}