using Microsoft.AspNetCore.Mvc.RazorPages; using TaxBaik.Application.Seasonal; using TaxBaik.Application.Services; using TaxBaik.Domain.Entities; namespace TaxBaik.Web.Pages; public class IndexModel : PageModel { private readonly BlogService _blogService; private readonly SeasonalMarketingService _seasonalMarketingService; private readonly AnnouncementService _announcementService; public List RecentPosts { get; set; } = []; public CurrentSeasonDto? CurrentSeason { get; set; } public List ActiveAnnouncements { get; set; } = []; public IndexModel( BlogService blogService, SeasonalMarketingService seasonalMarketingService, AnnouncementService announcementService) { _blogService = blogService; _seasonalMarketingService = seasonalMarketingService; _announcementService = announcementService; } public async Task OnGetAsync() { CurrentSeason = _seasonalMarketingService.GetCurrentSeason(); try { ActiveAnnouncements = (await _announcementService.GetActiveAsync()).ToList(); } catch { ActiveAnnouncements = []; } try { var (posts, _) = await _blogService.GetPublishedPagedAsync(1, 3); RecentPosts = posts.ToList(); } catch { RecentPosts = []; } } }