| 123456789101112131415161718192021222324252627282930313233 |
- using Application.Abstractions.Data;
- using Application.Abstractions.Messaging;
- using Microsoft.EntityFrameworkCore;
- namespace Application.Features.Admin.Payment.Toss.Cancel.Get;
- public sealed class Handler(IAppDbContext db) : IQueryHandler<Query, Response>
- {
- public async Task<Response> Handle(Query request, CancellationToken ct)
- {
- var cancel = await db.TossCancel.AsNoTracking().Include(c => c.Member).FirstOrDefaultAsync(c => c.ID == request.ID, ct) ?? throw new InvalidOperationException("토스 취소 내역을 찾을 수 없습니다.");
- return new Response
- {
- ID = cancel.ID,
- MemberID = cancel.MemberID,
- MemberEmail = cancel.Member?.Email ?? string.Empty,
- MemberName = cancel.Member?.Name,
- PaymentKey = cancel.PaymentKey,
- OrderID = cancel.OrderID,
- CancelAmount = cancel.CancelAmount,
- CancelReason = cancel.CancelReason,
- CancelRequester = cancel.CancelRequester,
- ResponseCode = cancel.ResponseCode,
- ResponseMessage = cancel.ResponseMessage,
- Status = cancel.Status,
- TransactionKey = cancel.TransactionKey,
- CanceledAt = cancel.CanceledAt,
- CreatedAt = cancel.CreatedAt,
- UpdatedAt = cancel.UpdatedAt
- };
- }
- }
|