39 lines
1.2 KiB
C#
39 lines
1.2 KiB
C#
using CMSMicroservice.Protobuf.Protos.ClubMembership;
|
|
|
|
namespace BackOffice.BFF.Application.ClubMembershipCQ.Commands.ActivateClub;
|
|
|
|
public class ActivateClubCommandHandler : IRequestHandler<ActivateClubCommand, ActivateClubResponseDto>
|
|
{
|
|
private readonly IApplicationContractContext _context;
|
|
|
|
public ActivateClubCommandHandler(IApplicationContractContext context)
|
|
{
|
|
_context = context;
|
|
}
|
|
|
|
public async Task<ActivateClubResponseDto> Handle(ActivateClubCommand request, CancellationToken cancellationToken)
|
|
{
|
|
var grpcRequest = new ActivateClubMembershipRequest
|
|
{
|
|
UserId = request.UserId,
|
|
PackageId = request.PackageId,
|
|
DurationMonths = request.DurationMonths
|
|
};
|
|
|
|
// اگر کد فعالسازی ارسال شده، اضافه کن
|
|
if (!string.IsNullOrEmpty(request.ActivationCode))
|
|
{
|
|
grpcRequest.ActivationCode = request.ActivationCode;
|
|
}
|
|
|
|
var response = await _context.ClubMemberships.ActivateClubMembershipAsync(
|
|
grpcRequest,
|
|
cancellationToken: cancellationToken);
|
|
|
|
return new ActivateClubResponseDto
|
|
{
|
|
Message = "Club membership activated successfully"
|
|
};
|
|
}
|
|
}
|