Files
BackOffice.BFF/src/BackOffice.BFF.Application/ManualPaymentCQ/Commands/CreateManualPayment/CreateManualPaymentCommandHandler.cs
masoodafar-web ce3b5db822
All checks were successful
Build and Deploy / build (push) Successful in 2m14s
feat: add Mapster profiles and enable DiscountOrder handlers
2025-12-08 21:10:21 +03:30

52 lines
1.7 KiB
C#

using BackOffice.BFF.Application.Common.Interfaces;
using BackOffice.BFF.ManualPayment.Protobuf;
using Google.Protobuf.WellKnownTypes;
using MediatR;
using Microsoft.Extensions.Logging;
namespace BackOffice.BFF.Application.ManualPaymentCQ.Commands.CreateManualPayment;
public class CreateManualPaymentCommandHandler : IRequestHandler<CreateManualPaymentCommand, CreateManualPaymentResponseDto>
{
private readonly IApplicationContractContext _context;
private readonly ILogger<CreateManualPaymentCommandHandler> _logger;
public CreateManualPaymentCommandHandler(
IApplicationContractContext context,
ILogger<CreateManualPaymentCommandHandler> logger)
{
_context = context;
_logger = logger;
}
public async Task<CreateManualPaymentResponseDto> Handle(CreateManualPaymentCommand request, CancellationToken cancellationToken)
{
_logger.LogInformation(
"Creating manual payment via BFF for UserId {UserId}, Amount {Amount}, Type {Type}",
request.UserId,
request.Amount,
request.Type);
var grpcRequest = new CreateManualPaymentRequest
{
UserId = request.UserId,
Amount = request.Amount,
Type = request.Type,
Description = request.Description
};
if (!string.IsNullOrWhiteSpace(request.ReferenceNumber))
{
grpcRequest.ReferenceNumber = request.ReferenceNumber;
}
var response = await _context.ManualPayments.CreateManualPaymentAsync(grpcRequest, cancellationToken: cancellationToken);
return new CreateManualPaymentResponseDto
{
Id = response.Id
};
}
}