GetHandler.cs 1.3 KB

12345678910111213141516171819202122232425262728293031323334
  1. using Application.Abstractions.Messaging;
  2. using Application.Abstractions.Data;
  3. using SharedKernel.Results;
  4. using Microsoft.EntityFrameworkCore;
  5. namespace Application.Features.Admin.Member.List.Approve;
  6. public sealed class GetHandler(IAppDbContext db) : IQueryHandler<Query, Result<Response>>
  7. {
  8. public async Task<Result<Response>> Handle(Query request, CancellationToken ct)
  9. {
  10. var member = await db.Member.AsNoTracking().Include(x => x.MemberApprove).FirstOrDefaultAsync(x => x.ID == request.MemberID, ct);
  11. if (member is null)
  12. {
  13. return Result.Failure<Response>(Error.NotFound("Member.NotFound", "회원을 찾을 수 없습니다."));
  14. }
  15. var approve = member.MemberApprove;
  16. return Result.Success(new Response
  17. {
  18. MemberID = member.ID,
  19. IsReceiveSMS = approve.IsReceiveSMS,
  20. ReceiveSMSConsentAt = approve.ReceiveSMSConsentAt,
  21. IsReceiveEmail = approve.IsReceiveEmail,
  22. ReceiveEmailConsentAt = approve.ReceiveEmailConsentAt,
  23. IsReceiveNote = approve.IsReceiveNote,
  24. ReceiveNoteConsentAt = approve.ReceiveNoteConsentAt,
  25. IsDisclosureInvest = approve.IsDisclosureInvest,
  26. DisclosureInvestConsentAt = approve.DisclosureInvestConsentAt
  27. });
  28. }
  29. }