| 12345678910111213141516171819202122232425 |
- using Application.Abstractions.Data;
- using Application.Abstractions.Messaging;
- using Microsoft.EntityFrameworkCore;
- namespace Application.Features.Admin.Stocks.MarketHolidays.GetAll;
- /// <summary>KRX 휴장일 목록 — 연도 필터 + 날짜 오름차순. 수집 배치(KrxBackfill)의 영업일 판정 원본 데이터.</summary>
- internal sealed class Handler(IAppDbContext db) : IQueryHandler<Query, Response>
- {
- public async Task<Response> Handle(Query request, CancellationToken ct)
- {
- var years = await db.MarketHoliday.AsNoTracking().Select(c => c.Date.Year).Distinct().OrderByDescending(c => c).ToListAsync(ct);
- var query = db.MarketHoliday.AsNoTracking();
- if (request.Year.HasValue)
- {
- query = query.Where(c => c.Date.Year == request.Year.Value);
- }
- var list = await query.OrderBy(c => c.Date).Select(c => new Response.Row(c.Date, c.Name)).ToListAsync(ct);
- return new Response(list.Count, years, list);
- }
- }
|