using Microsoft.AspNetCore.Components; using Blog3000.Shared; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace Blog3000.Client.Shared { public partial class StickyNavLinks: IDisposable { [Inject] private BlogDb BlogDb { get; set; } private List selectedPosts = new List(); public void Dispose() { BlogDb.BlogPostsChanged -= BlogDb_BlogPostsChanged; } private async void BlogDb_BlogPostsChanged(object sender, EventArgs e) { selectedPosts = await SelectPosts(); StateHasChanged(); } protected override async Task OnInitializedAsync() { BlogDb.BlogPostsChanged += BlogDb_BlogPostsChanged; selectedPosts = await SelectPosts(); } private async Task> SelectPosts() { var r = await BlogDb.GetHeadersAsync() .Where(c => (c.StickyMenuPos ?? -1) >= 0) .OrderBy(c => c.StickyMenuPos) .ToListAsync(); return r; } } }