Handler.cs 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. using Application.Abstractions.Data;
  2. using Application.Abstractions.Messaging;
  3. using Microsoft.EntityFrameworkCore;
  4. namespace Application.Features.Admin.Payment.Danal.Cancel.Get;
  5. public sealed class Handler(IAppDbContext db) : IQueryHandler<Query, Response>
  6. {
  7. public async Task<Response> Handle(Query request, CancellationToken ct)
  8. {
  9. var cancel = await db.DanalCancel.AsNoTracking()
  10. .Include(x => x.Member)
  11. .FirstOrDefaultAsync(x => x.ID == request.ID, ct)
  12. ?? throw new InvalidOperationException("다날 취소 내역을 찾을 수 없습니다.");
  13. return new Response
  14. {
  15. ID = cancel.ID,
  16. MemberID = cancel.MemberID,
  17. MemberEmail = cancel.Member?.Email ?? string.Empty,
  18. MemberName = cancel.Member?.Name,
  19. Method = cancel.Method,
  20. CancelType = cancel.CancelType,
  21. TransactionID = cancel.TransactionID,
  22. OrderID = cancel.OrderID,
  23. Amount = cancel.Amount,
  24. MerchantID = cancel.MerchantID,
  25. CancelRequester = cancel.CancelRequester,
  26. CancelReason = cancel.CancelReason,
  27. ResponseCode = cancel.ResponseCode,
  28. ResponseMessage = cancel.ResponseMessage,
  29. OriginalTransactionID = cancel.OriginalTransactionID,
  30. CancelledAmount = cancel.CancelledAmount,
  31. TransDate = cancel.TransDate,
  32. TransTime = cancel.TransTime,
  33. Balance = cancel.Balance,
  34. RemainedAmount = cancel.RemainedAmount,
  35. ApprovalDateTime = cancel.ApprovalDateTime,
  36. CreatedAt = cancel.CreatedAt,
  37. UpdatedAt = cancel.UpdatedAt
  38. };
  39. }
  40. }