@inherits RefreshablePageBase @page "/" @using RBLFeederCommon.Enums @using RBLFeederCommon.Models.RssFeed @using RBLNews.Shared.Components.Controls @using RBLNews.Shared.Services @inject IFeedDataService feedDataService @inject AppLifecycleService appLifecycleService @if (FeedGroups == null) {
Lade Feeds ...

} else {
@foreach (IGrouping sGrouping in SourceGroupings) { @* *@ }
@foreach (FeedGroupVM feedGrp in FeedGroups) {

@feedGrp.PublishDate.ToLocalTime().ToString("dd.MM.yyyy")

@foreach (FeedVM feed in feedGrp.Feeds) {
@feed.Title @feed.Description
  • @GetRssSourceName((RssFeedSources)@feed.Source) | @feed.PubDate?.ToLocalTime()

} }
} @code { [Inject] private IFeedDataService FeedDataService { get; set; } [Inject] private AppLifecycleService AppLifecycleService { get; set; } private List? FeedGroups { get; set; } private IEnumerable> SourceGroupings { get; set; } = new List>(); protected override void OnInitialized() { AppLifecycleService.OnActivated = LoadFeeds; LoadFeeds(); } private async void LoadFeeds() { // Copy feed list to keep original list await FeedDataService.LoadFeeds(); FeedGroups = [..FeedDataService.Feeds.FeedGroups]; List listTmp = [.. FeedDataService.Feeds.FeedGroups]; SourceGroupings = listTmp.SelectMany(fg => fg.Feeds.Select(f => f.Source)).GroupBy(sources => sources); StateHasChanged(); } private string GetRssSourceName(RssFeedSources source) { switch (source) { case RssFeedSources.RbLive: case RssFeedSources.NitterRbLive: return "RBLive!"; case RssFeedSources.NitterFabrizioRomano: return "Fabrizio Romano"; case RssFeedSources.Lvz: return "LVZ"; case RssFeedSources.Kicker: return "Kicker"; case RssFeedSources.Bild: return "BILD"; case RssFeedSources.Transfermarkt: return "Transfermarkt"; default: return "?"; } } private void OnClicked(RssFeedSources source) { FeedGroups = new List(); foreach (FeedGroupVM fg in FeedDataService.Feeds.FeedGroups) { List feeds = fg.Feeds.Where(f => (RssFeedSources)f.Source == source).ToList(); if (feeds.Any()) { FeedGroups.Add(new FeedGroupVM { Feeds = feeds, PublishDate = fg.PublishDate }); } } StateHasChanged(); } }