Handler.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. using Application.Abstractions.Data;
  2. using MediatR;
  3. using Microsoft.EntityFrameworkCore;
  4. namespace Application.Features.MemberGrade.GetAll
  5. {
  6. public sealed class Handler(IAppDbContext db) : IRequestHandler<Query, Response>
  7. {
  8. public async Task<Response> Handle(Query request, CancellationToken ct)
  9. {
  10. var items = await db.MemberGrade
  11. .AsNoTracking()
  12. .OrderBy(c => c.Order)
  13. .ThenByDescending(c => c.ID)
  14. .Select(c => new
  15. {
  16. c.ID,
  17. c.KorName,
  18. c.EngName,
  19. c.Description,
  20. c.Order,
  21. c.Image,
  22. c.TextColor,
  23. c.RequiredExp,
  24. c.RequiredAttendance,
  25. c.IsActive,
  26. c.UpdatedAt,
  27. c.CreatedAt
  28. })
  29. .ToListAsync(ct);
  30. return new Response(
  31. items.Count,
  32. [.. items.Select((c, i) => new Response.Row(
  33. i + 1,
  34. c.ID,
  35. c.KorName,
  36. c.EngName,
  37. c.Description,
  38. c.Order,
  39. c.Image,
  40. c.TextColor,
  41. c.RequiredExp,
  42. c.RequiredAttendance,
  43. c.IsActive,
  44. 0,
  45. c.UpdatedAt,
  46. c.CreatedAt
  47. ))]
  48. );
  49. }
  50. }
  51. }