This commit is contained in:
@@ -1,4 +1,3 @@
|
||||
@page "/"
|
||||
@using TaxBaik.Application.Seasonal
|
||||
@using TaxBaik.Application.Services
|
||||
@inject SeasonalMarketingService SeasonalMarketingService
|
||||
|
||||
@@ -41,16 +41,11 @@ public class RevenueTrackingController(RevenueTrackingService service) : Control
|
||||
[HttpGet("{id:int}")]
|
||||
public async Task<IActionResult> GetById(int id)
|
||||
{
|
||||
try
|
||||
return StatusCode(StatusCodes.Status501NotImplemented, new
|
||||
{
|
||||
// GetByIdAsync가 없으면 GetByClientIdAsync를 사용하거나 별도 구현 필요
|
||||
// 임시로 구현 - 실제로는 repository에 GetByIdAsync 추가 필요
|
||||
return Ok(new { message = "조회됨" });
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return StatusCode(500, new { error = "조회 실패", message = ex.Message });
|
||||
}
|
||||
error = "미구현",
|
||||
message = "RevenueTrackingService.GetByIdAsync 구현이 필요합니다."
|
||||
});
|
||||
}
|
||||
|
||||
[HttpGet("client/{clientId:int}")]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
@page
|
||||
@page "/"
|
||||
@{
|
||||
Layout = null;
|
||||
}
|
||||
|
||||
@@ -1,76 +0,0 @@
|
||||
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;
|
||||
private readonly FaqService _faqService;
|
||||
|
||||
public List<BlogPost> RecentPosts { get; set; } = [];
|
||||
public List<BlogPost> SeasonalPosts { get; set; } = [];
|
||||
public CurrentSeasonDto? CurrentSeason { get; set; }
|
||||
public List<Announcement> ActiveAnnouncements { get; set; } = [];
|
||||
public List<Faq> ActiveFaqs { get; set; } = [];
|
||||
|
||||
public IndexModel(
|
||||
BlogService blogService,
|
||||
SeasonalMarketingService seasonalMarketingService,
|
||||
AnnouncementService announcementService,
|
||||
FaqService faqService)
|
||||
{
|
||||
_blogService = blogService;
|
||||
_seasonalMarketingService = seasonalMarketingService;
|
||||
_announcementService = announcementService;
|
||||
_faqService = faqService;
|
||||
}
|
||||
|
||||
public async Task OnGetAsync()
|
||||
{
|
||||
CurrentSeason = _seasonalMarketingService.GetCurrentSeason();
|
||||
|
||||
var announcementsTask = LoadSafeAsync(() => _announcementService.GetActiveAsync());
|
||||
var faqsTask = LoadSafeAsync(() => _faqService.GetActiveAsync());
|
||||
var blogTask = LoadBlogAsync();
|
||||
|
||||
await Task.WhenAll(announcementsTask, faqsTask, blogTask);
|
||||
|
||||
ActiveAnnouncements = (await announcementsTask)?.ToList() ?? [];
|
||||
ActiveFaqs = (await faqsTask)?.ToList() ?? [];
|
||||
}
|
||||
|
||||
private async Task LoadBlogAsync()
|
||||
{
|
||||
try
|
||||
{
|
||||
if (CurrentSeason is not null && !string.IsNullOrEmpty(CurrentSeason.RelatedCategorySlug))
|
||||
{
|
||||
var (seasonal, latest) = await _blogService.GetSeasonalPostsAsync(
|
||||
CurrentSeason.RelatedCategorySlug, seasonalCount: 2, totalCount: 3);
|
||||
SeasonalPosts = seasonal.ToList();
|
||||
RecentPosts = latest.ToList();
|
||||
}
|
||||
else
|
||||
{
|
||||
var (posts, _) = await _blogService.GetPublishedPagedAsync(1, 3);
|
||||
RecentPosts = posts.ToList();
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
RecentPosts = [];
|
||||
SeasonalPosts = [];
|
||||
}
|
||||
}
|
||||
|
||||
private static async Task<IEnumerable<T>?> LoadSafeAsync<T>(Func<Task<IEnumerable<T>>> loader)
|
||||
{
|
||||
try { return await loader(); }
|
||||
catch { return null; }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user