Replace file-based blog with API-backed service
BlogService now fetches from Media.JoshHeaps.Net API via HttpClient with in-memory caching (5-min TTL) and stale cache fallback. Removed Markdig/YamlDotNet dependencies. All page models now async. Co-Authored-By: Claude Opus 4.6 <[email protected]>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
5fd3a5d7c1
commit
8043eee4cc
@@ -0,0 +1,26 @@
|
||||
using JoshHeaps.Net.Models;
|
||||
using JoshHeaps.Net.Services.Interfaces;
|
||||
using Microsoft.AspNetCore.Mvc.RazorPages;
|
||||
|
||||
namespace JoshHeaps.Net.Pages;
|
||||
|
||||
public class BlogModel : PageModel
|
||||
{
|
||||
private readonly IBlogService _blogService;
|
||||
|
||||
public List<BlogPost> Posts { get; set; } = [];
|
||||
public string? ActiveTag { get; set; }
|
||||
|
||||
public BlogModel(IBlogService blogService)
|
||||
{
|
||||
_blogService = blogService;
|
||||
}
|
||||
|
||||
public async Task OnGetAsync(string? tag)
|
||||
{
|
||||
ActiveTag = tag;
|
||||
Posts = tag is not null
|
||||
? await _blogService.GetPostsByTagAsync(tag)
|
||||
: await _blogService.GetAllPostsAsync();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user