@page "/read" @using WebSharpRSS.Models; @using ToolQit.Extensions @using Serilog @using SharpRss.Models @using SharpRss.Services @inject RssService _rssService; @if (isLoading) {
Loading...
} else if (faulted) { Could not load feeds! } else { foreach (var feedItemData in items) {
@*@if (feedItemData.Icon != null) { } @if (feedItemData.FaviconUrl != null) { }*@ @feedItemData.Title
@feedItemData.Description @feedItemData.PublishingDate.ToString()
} }
@code { [Parameter] [SupplyParameterFromQuery(Name = "fid")] public string? Fid { get => _fid; set { _fid = value; LoadItems(); } } private string? _fid; [Parameter] [SupplyParameterFromQuery(Name = "gid")] public string? Gid { get => _gid; set { _gid = value; LoadItems(); } } private string? _gid; HashSet items = new HashSet(); bool isLoading = true; bool faulted = false; private async void LoadItems() { faulted = false; isLoading = true; if (Fid != null) { var fItems = await _rssService.GetFeedItemsAsync(Fid); items = fItems.Select(x => FeedItemData.FromModel(x)).OrderBy(x => x.PublishingDate).Reverse().ToHashSet(); isLoading = false; } else if (Gid != null) { var feeds = await _rssService.GetFeedsAsync(Gid); var feedids = feeds.Select(x => x.Id); var feedItems = await _rssService.GetFeedItemsFromFeedsAsync(feedids.ToArray()); items = feedItems.Select(x => FeedItemData.FromModel(x)).OrderBy(x => x.PublishingDate).Reverse().ToHashSet(); } else { faulted = true; } isLoading = false; StateHasChanged(); } protected override void OnInitialized() { LoadItems(); } }