This commit is contained in:
@@ -1,4 +1,3 @@
|
|||||||
@page "/"
|
|
||||||
@using TaxBaik.Application.Seasonal
|
@using TaxBaik.Application.Seasonal
|
||||||
@using TaxBaik.Application.Services
|
@using TaxBaik.Application.Services
|
||||||
@inject SeasonalMarketingService SeasonalMarketingService
|
@inject SeasonalMarketingService SeasonalMarketingService
|
||||||
|
|||||||
@@ -41,16 +41,11 @@ public class RevenueTrackingController(RevenueTrackingService service) : Control
|
|||||||
[HttpGet("{id:int}")]
|
[HttpGet("{id:int}")]
|
||||||
public async Task<IActionResult> GetById(int id)
|
public async Task<IActionResult> GetById(int id)
|
||||||
{
|
{
|
||||||
try
|
return StatusCode(StatusCodes.Status501NotImplemented, new
|
||||||
{
|
{
|
||||||
// GetByIdAsync가 없으면 GetByClientIdAsync를 사용하거나 별도 구현 필요
|
error = "미구현",
|
||||||
// 임시로 구현 - 실제로는 repository에 GetByIdAsync 추가 필요
|
message = "RevenueTrackingService.GetByIdAsync 구현이 필요합니다."
|
||||||
return Ok(new { message = "조회됨" });
|
});
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
return StatusCode(500, new { error = "조회 실패", message = ex.Message });
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet("client/{clientId:int}")]
|
[HttpGet("client/{clientId:int}")]
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
@page
|
@page "/"
|
||||||
@{
|
@{
|
||||||
Layout = null;
|
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