This commit is contained in:
MeysamMoghaddam
2025-10-13 13:00:03 +03:30
parent 4e56dd1204
commit 408e0bdf79
16 changed files with 63 additions and 12 deletions

View File

@@ -3,6 +3,7 @@ using CMSMicroservice.Protobuf.Protos.Package;
using CMSMicroservice.Protobuf.Protos.User;
using CMSMicroservice.Protobuf.Protos.UserAddress;
using CMSMicroservice.Protobuf.Protos.UserOrder;
using PYMSMicroservice.Protobuf.Protos.Transaction;
namespace FrontOffice.BFF.Application.Common.Interfaces;
@@ -21,4 +22,8 @@ public interface IApplicationContractContext
UserOrderContract.UserOrderContractClient UserOrder { get; }
OtpTokenContract.OtpTokenContractClient OtpToken { get; }
#endregion
#region PYMS
TransactionContract.TransactionContractClient ZarinTransactions { get; }
#endregion
}

View File

@@ -1,3 +1,5 @@
using PYMSMicroservice.Protobuf.Protos;
namespace FrontOffice.BFF.Application.TransactionCQ.Commands.PaymentRequest;
public record PaymentRequestCommand : IRequest<PaymentRequestResponseDto>
{

View File

@@ -1,3 +1,5 @@
using PYMSMicroservice.Protobuf.Protos.Transaction;
namespace FrontOffice.BFF.Application.TransactionCQ.Commands.PaymentRequest;
public class PaymentRequestCommandHandler : IRequestHandler<PaymentRequestCommand, PaymentRequestResponseDto>
{
@@ -10,7 +12,9 @@ public class PaymentRequestCommandHandler : IRequestHandler<PaymentRequestComman
public async Task<PaymentRequestResponseDto> Handle(PaymentRequestCommand request, CancellationToken cancellationToken)
{
//TODO: Implement your business logic
return new PaymentRequestResponseDto();
var req = request.Adapt<PaymentRequestRequest>();
req.MerchantId = "6b098fc8-f490-47a1-aac3-1de1a1b84404";
var response = await _context.ZarinTransactions.PaymentRequestAsync(request: req, cancellationToken: cancellationToken);
return response.Adapt<PaymentRequestResponseDto>();
}
}

View File

@@ -1,3 +1,5 @@
using PYMSMicroservice.Protobuf.Protos.Transaction;
namespace FrontOffice.BFF.Application.TransactionCQ.Commands.PaymentVerification;
public class PaymentVerificationCommandHandler : IRequestHandler<PaymentVerificationCommand, PaymentVerificationResponseDto>
{
@@ -10,7 +12,7 @@ public class PaymentVerificationCommandHandler : IRequestHandler<PaymentVerifica
public async Task<PaymentVerificationResponseDto> Handle(PaymentVerificationCommand request, CancellationToken cancellationToken)
{
//TODO: Implement your business logic
return new PaymentVerificationResponseDto();
var response = await _context.ZarinTransactions.PaymentVerificationAsync(request: request.Adapt<PaymentVerificationRequest>(), cancellationToken: cancellationToken);
return response.Adapt<PaymentVerificationResponseDto>();
}
}

View File

@@ -1,3 +1,6 @@
using PYMSMicroservice.Protobuf.Protos;
using PaginationState = FrontOffice.BFF.Application.Common.Models.PaginationState;
namespace FrontOffice.BFF.Application.TransactionCQ.Queries.GetAllTransactionByFilter;
public record GetAllTransactionByFilterQuery : IRequest<GetAllTransactionByFilterResponseDto>
{

View File

@@ -1,3 +1,5 @@
using PYMSMicroservice.Protobuf.Protos.Transaction;
namespace FrontOffice.BFF.Application.TransactionCQ.Queries.GetAllTransactionByFilter;
public class GetAllTransactionByFilterQueryHandler : IRequestHandler<GetAllTransactionByFilterQuery, GetAllTransactionByFilterResponseDto>
{
@@ -10,7 +12,7 @@ public class GetAllTransactionByFilterQueryHandler : IRequestHandler<GetAllTrans
public async Task<GetAllTransactionByFilterResponseDto> Handle(GetAllTransactionByFilterQuery request, CancellationToken cancellationToken)
{
//TODO: Implement your business logic
return new GetAllTransactionByFilterResponseDto();
var response = await _context.ZarinTransactions.GetAllTransactionByFilterAsync(request: request.Adapt<GetAllTransactionByFilterRequest>(), cancellationToken: cancellationToken);
return response.Adapt<GetAllTransactionByFilterResponseDto>();
}
}

View File

@@ -1,3 +1,6 @@
using PYMSMicroservice.Protobuf.Protos;
using MetaData = FrontOffice.BFF.Application.Common.Models.MetaData;
namespace FrontOffice.BFF.Application.TransactionCQ.Queries.GetAllTransactionByFilter;
public class GetAllTransactionByFilterResponseDto
{

View File

@@ -1,3 +1,5 @@
using PYMSMicroservice.Protobuf.Protos.Transaction;
namespace FrontOffice.BFF.Application.TransactionCQ.Queries.GetTransaction;
public class GetTransactionQueryHandler : IRequestHandler<GetTransactionQuery, GetTransactionResponseDto>
{
@@ -10,7 +12,7 @@ public class GetTransactionQueryHandler : IRequestHandler<GetTransactionQuery, G
public async Task<GetTransactionResponseDto> Handle(GetTransactionQuery request, CancellationToken cancellationToken)
{
//TODO: Implement your business logic
return new GetTransactionResponseDto();
var response = await _context.ZarinTransactions.GetTransactionAsync(request: request.Adapt<GetTransactionRequest>(), cancellationToken: cancellationToken);
return response.Adapt<GetTransactionResponseDto>();
}
}

View File

@@ -1,3 +1,5 @@
using PYMSMicroservice.Protobuf.Protos;
namespace FrontOffice.BFF.Application.TransactionCQ.Queries.GetTransaction;
public class GetTransactionResponseDto
{