using CMSMicroservice.Protobuf.Protos.Configuration;
namespace FrontOffice.BFF.Application.ConfigurationCQ.Queries.GetClubConfiguration;
///
/// هندلر دریافت تنظیمات باشگاه مشتریان از CMS
///
public class GetClubConfigurationQueryHandler : IRequestHandler
{
private readonly IApplicationContractContext _context;
public GetClubConfigurationQueryHandler(IApplicationContractContext context)
{
_context = context;
}
public async Task Handle(GetClubConfigurationQuery request, CancellationToken cancellationToken)
{
// دریافت مبلغ فعالسازی از CMS
var activationFeeRequest = new GetConfigurationByKeyRequest
{
Scope = 2, // ConfigurationScope.Club
Key = "Club.ActivationFee"
};
var giftValueRequest = new GetConfigurationByKeyRequest
{
Scope = 2, // ConfigurationScope.Club
Key = "Club.MembershipGiftValue"
};
var activationFeeResponse = await _context.Configuration.GetConfigurationByKeyAsync(activationFeeRequest, cancellationToken: cancellationToken);
var giftValueResponse = await _context.Configuration.GetConfigurationByKeyAsync(giftValueRequest, cancellationToken: cancellationToken);
var response = new GetClubConfigurationResponseDto
{
ActivationFee = long.TryParse(activationFeeResponse?.Value, out var fee) ? fee : 25000000,
MembershipGiftValue = long.TryParse(giftValueResponse?.Value, out var gift) ? gift : 25200000
};
return response;
}
}