You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
3.0 KiB
65 lines
3.0 KiB
using CustomerOnlineRemit.Business.TPApiHelper;
|
|
using CustomerOnlineRemit.Common.Helper;
|
|
using CustomerOnlineRemit.Common.Model.Account;
|
|
using CustomerOnlineRemit.Common.Model.Transaction;
|
|
using CustomerOnlineRemit.Repository.Repository.Transaction;
|
|
using Newtonsoft.Json;
|
|
|
|
namespace CustomerOnlineRemit.Business.Business.Transaction
|
|
{
|
|
public class TransactionBusiness : ITransactionBusiness
|
|
{
|
|
private static readonly Serilog.ILogger _logger = Serilog.Log.ForContext<TransactionBusiness>();
|
|
ITransactionRepository _transactionRepo;
|
|
IAPIHelper _apiHelper;
|
|
public TransactionBusiness(ITransactionRepository transactionRepo, IAPIHelper apiHelper)
|
|
{
|
|
_transactionRepo = transactionRepo;
|
|
_apiHelper = apiHelper;
|
|
}
|
|
|
|
public async Task<ExrateResponse> DoCalculation(CalculateModel calcModel, LoginResponse loginDetails)
|
|
{
|
|
ExrateResponse _response = new ExrateResponse();
|
|
_logger.Debug("TRANSACTIONBUSINESS | DOCALCULATION | REQUEST | " + JsonConvert.SerializeObject(calcModel));
|
|
|
|
ExratePayoutDetailsModel _partnerDetails = await _transactionRepo.GetPayoutDetails(calcModel, loginDetails);
|
|
|
|
ExrateCalculateRequestModel _request = GenerateExrateParams(calcModel, loginDetails, _partnerDetails);
|
|
|
|
_response = await _apiHelper.GetExRate(_request);
|
|
|
|
return _response;
|
|
}
|
|
|
|
private ExrateCalculateRequestModel GenerateExrateParams(CalculateModel calcModel, LoginResponse loginDetails, ExratePayoutDetailsModel partnerDetails)
|
|
{
|
|
return new ExrateCalculateRequestModel()
|
|
{
|
|
RequestedBy = "online",
|
|
SCountry = Utilities.ReadFromAppSettings("OnlineAgent:SendingCountry"),
|
|
SSuperAgent = Utilities.ReadFromAppSettings("OnlineAgent:SuperAgentId"),
|
|
SBranch = Utilities.ReadFromAppSettings("OnlineAgent:BranchId"),
|
|
CollCurrency = Utilities.ReadFromAppSettings("OnlineAgent:CollCurrency"),
|
|
PayoutPartner = partnerDetails.PayoutPartner,
|
|
PCountry = calcModel.PayoutCountryId,
|
|
PCountryName = partnerDetails.PayoutCountryName,
|
|
pCountryCode = partnerDetails.PayoutCountryName,
|
|
PCurrency = partnerDetails.PayoutCurrency,
|
|
SCurrency = Utilities.ReadFromAppSettings("OnlineAgent:CollCurrency"),
|
|
CAmount = calcModel.CollectAmt,
|
|
PAmount = calcModel.PayoutAmt,
|
|
ServiceType = calcModel.PayoutMethod,
|
|
CalcBy = calcModel.CalculateBy,
|
|
PaymentType = "wallet",
|
|
IsManualSc = "false",
|
|
ManualSc = "0",
|
|
IsExRateCalcByPartner = "false",
|
|
ProcessFor = Utilities.ReadFromAppSettings("OnlineAgent:ProcessFor"),
|
|
ProcessId = calcModel.ProcessId,
|
|
UserName = loginDetails.UserName,
|
|
SessionId = calcModel.ProcessId
|
|
};
|
|
}
|
|
}
|
|
}
|