Files
social-media/src/Application/Stripe/Commands/ConfirmStripeTransaction.cs
2024-04-24 22:14:14 -04:00

25 lines
900 B
C#

using Hutopy.Application.Common.Interfaces;
namespace Hutopy.Application.Stripe.Commands;
public record ConfirmStripeTransactionCommand : IRequest<string>
{
public required Guid UserTransactionId { get; init; }
public required bool IsConfirmed { get; init; }
}
public class ConfirmStripeTransactionCommandHandler(
IApplicationDbContext dbContext
)
: IRequestHandler<ConfirmStripeTransactionCommand, string>
{
public async Task<string> Handle(ConfirmStripeTransactionCommand request, CancellationToken cancellationToken)
{
var transaction = await dbContext.UserTransactions.FirstOrDefaultAsync(x => x.Id == request.UserTransactionId, cancellationToken);
if (transaction is null) return "";
transaction.IsConfirmed = request.IsConfirmed;
dbContext.UserTransactions.Update(transaction);
return transaction.Id.ToString();
}
}