Handler.cs 921 B

123456789101112131415161718192021222324252627282930
  1. using Application.Abstractions.Messaging;
  2. using Application.Abstractions.Data;
  3. using Microsoft.EntityFrameworkCore;
  4. using SharedKernel.Results;
  5. namespace Application.Features.Api.Forum.Board.Get;
  6. public sealed class Handler(IAppDbContext db) : IQueryHandler<Query, Result<Response>>
  7. {
  8. public async Task<Result<Response>> Handle(Query request, CancellationToken ct)
  9. {
  10. var item = await db.Board.AsNoTracking().FirstOrDefaultAsync(x => x.ID == request.ID, ct);
  11. if (item is null)
  12. {
  13. return Result.Failure<Response>(Error.NotFound("Board.NotFound", "게시판을 찾을 수 없습니다."));
  14. }
  15. return new Response(
  16. item.ID,
  17. item.BoardGroupID,
  18. item.Code,
  19. item.Name,
  20. item.Order,
  21. item.IsSearch,
  22. item.IsActive,
  23. item.UpdatedAt,
  24. item.CreatedAt
  25. );
  26. }
  27. }