Browse Source

send txn finalize, add success screen

feature/Redmine-18711-Receiver_Module_for_Web
Arjun Dhami 1 year ago
parent
commit
f1ee8624dc
  1. BIN
      CustomerOnlineV2/.vs/CustomerOnlineV2/DesignTimeBuild/.dtbcache.v2
  2. BIN
      CustomerOnlineV2/.vs/CustomerOnlineV2/FileContentIndex/062b77ba-48da-4e54-af34-11b6651a5f8f.vsidx
  3. BIN
      CustomerOnlineV2/.vs/CustomerOnlineV2/FileContentIndex/69ee9263-a1ef-472d-8a39-cc72c085acb1.vsidx
  4. BIN
      CustomerOnlineV2/.vs/CustomerOnlineV2/FileContentIndex/fe0b247d-1fab-4bc9-909b-301e95e5a756.vsidx
  5. BIN
      CustomerOnlineV2/.vs/CustomerOnlineV2/v17/.futdcache.v2
  6. BIN
      CustomerOnlineV2/.vs/CustomerOnlineV2/v17/.suo
  7. BIN
      CustomerOnlineV2/.vs/ProjectEvaluation/customeronlinev2.metadata.v7.bin
  8. BIN
      CustomerOnlineV2/.vs/ProjectEvaluation/customeronlinev2.projects.v7.bin
  9. 1
      CustomerOnlineV2/CustomerOnlineV2.Api/API/TPApi/ITPApiService.cs
  10. 59
      CustomerOnlineV2/CustomerOnlineV2.Api/API/TPApi/TPApiService.cs
  11. BIN
      CustomerOnlineV2/CustomerOnlineV2.Api/bin/Debug/net7.0/CustomerOnlineV2.Api.dll
  12. BIN
      CustomerOnlineV2/CustomerOnlineV2.Api/bin/Debug/net7.0/CustomerOnlineV2.Api.pdb
  13. BIN
      CustomerOnlineV2/CustomerOnlineV2.Api/bin/Debug/net7.0/CustomerOnlineV2.Common.dll
  14. BIN
      CustomerOnlineV2/CustomerOnlineV2.Api/bin/Debug/net7.0/CustomerOnlineV2.Common.pdb
  15. BIN
      CustomerOnlineV2/CustomerOnlineV2.Api/obj/Debug/net7.0/CustomerOnlineV2.Api.csproj.AssemblyReference.cache
  16. BIN
      CustomerOnlineV2/CustomerOnlineV2.Api/obj/Debug/net7.0/CustomerOnlineV2.Api.dll
  17. BIN
      CustomerOnlineV2/CustomerOnlineV2.Api/obj/Debug/net7.0/CustomerOnlineV2.Api.pdb
  18. BIN
      CustomerOnlineV2/CustomerOnlineV2.Api/obj/Debug/net7.0/ref/CustomerOnlineV2.Api.dll
  19. BIN
      CustomerOnlineV2/CustomerOnlineV2.Api/obj/Debug/net7.0/refint/CustomerOnlineV2.Api.dll
  20. 4
      CustomerOnlineV2/CustomerOnlineV2.Business/Business/TransactionBusiness/ITransactionBusiness.cs
  21. 265
      CustomerOnlineV2/CustomerOnlineV2.Business/Business/TransactionBusiness/TransactionBusiness.cs
  22. BIN
      CustomerOnlineV2/CustomerOnlineV2.Business/bin/Debug/net7.0/CustomerOnlineV2.Api.dll
  23. BIN
      CustomerOnlineV2/CustomerOnlineV2.Business/bin/Debug/net7.0/CustomerOnlineV2.Api.pdb
  24. BIN
      CustomerOnlineV2/CustomerOnlineV2.Business/bin/Debug/net7.0/CustomerOnlineV2.Business.dll
  25. BIN
      CustomerOnlineV2/CustomerOnlineV2.Business/bin/Debug/net7.0/CustomerOnlineV2.Business.pdb
  26. BIN
      CustomerOnlineV2/CustomerOnlineV2.Business/bin/Debug/net7.0/CustomerOnlineV2.Common.dll
  27. BIN
      CustomerOnlineV2/CustomerOnlineV2.Business/bin/Debug/net7.0/CustomerOnlineV2.Common.pdb
  28. BIN
      CustomerOnlineV2/CustomerOnlineV2.Business/bin/Debug/net7.0/CustomerOnlineV2.Repository.dll
  29. BIN
      CustomerOnlineV2/CustomerOnlineV2.Business/bin/Debug/net7.0/CustomerOnlineV2.Repository.pdb
  30. BIN
      CustomerOnlineV2/CustomerOnlineV2.Business/obj/Debug/net7.0/CustomerOnlineV2.Business.csproj.AssemblyReference.cache
  31. BIN
      CustomerOnlineV2/CustomerOnlineV2.Business/obj/Debug/net7.0/CustomerOnlineV2.Business.dll
  32. BIN
      CustomerOnlineV2/CustomerOnlineV2.Business/obj/Debug/net7.0/CustomerOnlineV2.Business.pdb
  33. BIN
      CustomerOnlineV2/CustomerOnlineV2.Business/obj/Debug/net7.0/ref/CustomerOnlineV2.Business.dll
  34. BIN
      CustomerOnlineV2/CustomerOnlineV2.Business/obj/Debug/net7.0/refint/CustomerOnlineV2.Business.dll
  35. 8
      CustomerOnlineV2/CustomerOnlineV2.Common/Helper/Utilities.cs
  36. 78
      CustomerOnlineV2/CustomerOnlineV2.Common/Models/TransactionModel/ExrateResponse.cs
  37. BIN
      CustomerOnlineV2/CustomerOnlineV2.Common/bin/Debug/net7.0/CustomerOnlineV2.Common.dll
  38. BIN
      CustomerOnlineV2/CustomerOnlineV2.Common/bin/Debug/net7.0/CustomerOnlineV2.Common.pdb
  39. BIN
      CustomerOnlineV2/CustomerOnlineV2.Common/obj/Debug/net7.0/CustomerOnlineV2.Common.dll
  40. BIN
      CustomerOnlineV2/CustomerOnlineV2.Common/obj/Debug/net7.0/CustomerOnlineV2.Common.pdb
  41. BIN
      CustomerOnlineV2/CustomerOnlineV2.Common/obj/Debug/net7.0/ref/CustomerOnlineV2.Common.dll
  42. BIN
      CustomerOnlineV2/CustomerOnlineV2.Common/obj/Debug/net7.0/refint/CustomerOnlineV2.Common.dll
  43. 3
      CustomerOnlineV2/CustomerOnlineV2.Repository/Repository/TransactionRepository/ITransactionRepository.cs
  44. 48
      CustomerOnlineV2/CustomerOnlineV2.Repository/Repository/TransactionRepository/TransactionRepository.cs
  45. BIN
      CustomerOnlineV2/CustomerOnlineV2.Repository/bin/Debug/net7.0/CustomerOnlineV2.Common.dll
  46. BIN
      CustomerOnlineV2/CustomerOnlineV2.Repository/bin/Debug/net7.0/CustomerOnlineV2.Common.pdb
  47. BIN
      CustomerOnlineV2/CustomerOnlineV2.Repository/bin/Debug/net7.0/CustomerOnlineV2.Repository.dll
  48. BIN
      CustomerOnlineV2/CustomerOnlineV2.Repository/bin/Debug/net7.0/CustomerOnlineV2.Repository.pdb
  49. BIN
      CustomerOnlineV2/CustomerOnlineV2.Repository/obj/Debug/net7.0/CustomerOnlineV2.Repository.csproj.AssemblyReference.cache
  50. BIN
      CustomerOnlineV2/CustomerOnlineV2.Repository/obj/Debug/net7.0/CustomerOnlineV2.Repository.dll
  51. BIN
      CustomerOnlineV2/CustomerOnlineV2.Repository/obj/Debug/net7.0/CustomerOnlineV2.Repository.pdb
  52. BIN
      CustomerOnlineV2/CustomerOnlineV2.Repository/obj/Debug/net7.0/ref/CustomerOnlineV2.Repository.dll
  53. BIN
      CustomerOnlineV2/CustomerOnlineV2.Repository/obj/Debug/net7.0/refint/CustomerOnlineV2.Repository.dll
  54. 34
      CustomerOnlineV2/CustomerOnlineV2/Controllers/TransactionController.cs
  55. 125
      CustomerOnlineV2/CustomerOnlineV2/Views/Transaction/SendMoney.cshtml
  56. 32
      CustomerOnlineV2/CustomerOnlineV2/Views/Transaction/Success.cshtml
  57. BIN
      CustomerOnlineV2/CustomerOnlineV2/bin/Debug/net7.0/CustomerOnlineV2.Api.dll
  58. BIN
      CustomerOnlineV2/CustomerOnlineV2/bin/Debug/net7.0/CustomerOnlineV2.Api.pdb
  59. BIN
      CustomerOnlineV2/CustomerOnlineV2/bin/Debug/net7.0/CustomerOnlineV2.Business.dll
  60. BIN
      CustomerOnlineV2/CustomerOnlineV2/bin/Debug/net7.0/CustomerOnlineV2.Business.pdb
  61. BIN
      CustomerOnlineV2/CustomerOnlineV2/bin/Debug/net7.0/CustomerOnlineV2.Common.dll
  62. BIN
      CustomerOnlineV2/CustomerOnlineV2/bin/Debug/net7.0/CustomerOnlineV2.Common.pdb
  63. BIN
      CustomerOnlineV2/CustomerOnlineV2/bin/Debug/net7.0/CustomerOnlineV2.Repository.dll
  64. BIN
      CustomerOnlineV2/CustomerOnlineV2/bin/Debug/net7.0/CustomerOnlineV2.Repository.pdb
  65. BIN
      CustomerOnlineV2/CustomerOnlineV2/bin/Debug/net7.0/CustomerOnlineV2.dll
  66. BIN
      CustomerOnlineV2/CustomerOnlineV2/bin/Debug/net7.0/CustomerOnlineV2.pdb
  67. 4
      CustomerOnlineV2/CustomerOnlineV2/obj/Debug/net7.0/CustomerOnlineV2.GeneratedMSBuildEditorConfig.editorconfig
  68. BIN
      CustomerOnlineV2/CustomerOnlineV2/obj/Debug/net7.0/CustomerOnlineV2.csproj.AssemblyReference.cache
  69. BIN
      CustomerOnlineV2/CustomerOnlineV2/obj/Debug/net7.0/CustomerOnlineV2.dll
  70. BIN
      CustomerOnlineV2/CustomerOnlineV2/obj/Debug/net7.0/CustomerOnlineV2.pdb
  71. 2
      CustomerOnlineV2/CustomerOnlineV2/obj/Debug/net7.0/project.razor.vs.json
  72. BIN
      CustomerOnlineV2/CustomerOnlineV2/obj/Debug/net7.0/ref/CustomerOnlineV2.dll
  73. BIN
      CustomerOnlineV2/CustomerOnlineV2/obj/Debug/net7.0/refint/CustomerOnlineV2.dll
  74. 7
      DB/PROC_DYNAMIC_TABLE.sql

BIN
CustomerOnlineV2/.vs/CustomerOnlineV2/DesignTimeBuild/.dtbcache.v2

BIN
CustomerOnlineV2/.vs/CustomerOnlineV2/FileContentIndex/11384c65-95fb-4bc1-9dca-1108a96e5fb5.vsidx → CustomerOnlineV2/.vs/CustomerOnlineV2/FileContentIndex/062b77ba-48da-4e54-af34-11b6651a5f8f.vsidx

BIN
CustomerOnlineV2/.vs/CustomerOnlineV2/FileContentIndex/69ee9263-a1ef-472d-8a39-cc72c085acb1.vsidx

BIN
CustomerOnlineV2/.vs/CustomerOnlineV2/FileContentIndex/fe0b247d-1fab-4bc9-909b-301e95e5a756.vsidx

BIN
CustomerOnlineV2/.vs/CustomerOnlineV2/v17/.futdcache.v2

BIN
CustomerOnlineV2/.vs/CustomerOnlineV2/v17/.suo

BIN
CustomerOnlineV2/.vs/ProjectEvaluation/customeronlinev2.metadata.v7.bin

BIN
CustomerOnlineV2/.vs/ProjectEvaluation/customeronlinev2.projects.v7.bin

1
CustomerOnlineV2/CustomerOnlineV2.Api/API/TPApi/ITPApiService.cs

@ -5,5 +5,6 @@ namespace CustomerOnlineV2.Api.API.TPApi
public interface ITPApiService
{
Task<ExrateResponse> GetExRate(ExrateCalculateRequestModel _request);
Task<SendMoneyResponse> SendMoney(SendMoneyRequestModel _request);
}
}

59
CustomerOnlineV2/CustomerOnlineV2.Api/API/TPApi/TPApiService.cs

@ -39,7 +39,7 @@ namespace CustomerOnlineV2.Api.API.TPApi
_response.ResponseCode = Convert.ToInt16(_responseTP.ResponseCode);
_response.ResponseMessage = _responseTP.Msg;
if (_responseTP.ResponseCode == "0")
if (_response.ResponseCode == ResponseHelper.SUCCESS)
{
_response = JsonConvert.DeserializeObject<ExrateResponse>(JsonConvert.SerializeObject(_responseTP.Data));
@ -52,7 +52,7 @@ namespace CustomerOnlineV2.Api.API.TPApi
_response.ResponseCode = ResponseHelper.FAILED;
_response.ResponseMessage = "Error occured while calling getting exrate from TPAPI: ";
_logger.LogError("TRANSACTIONREPOSITORY | GETPAYOUTDETAILS | ERROR | " + JsonConvert.SerializeObject(_response));
_logger.LogError("TRANSACTIONREPOSITORY | GETEXRATE | ERROR | " + JsonConvert.SerializeObject(_response));
}
}
catch (Exception ex)
@ -60,7 +60,60 @@ namespace CustomerOnlineV2.Api.API.TPApi
_response.ResponseCode = ResponseHelper.EXCEPTION;
_response.ResponseMessage = "Exception occured: " + ex.Message;
_logger.LogError("TRANSACTIONREPOSITORY | GETPAYOUTDETAILS | EXCEPTION | " + JsonConvert.SerializeObject(_response));
_logger.LogError("TRANSACTIONREPOSITORY | GETEXRATE | EXCEPTION | " + JsonConvert.SerializeObject(_response));
}
}
return _response;
}
public async Task<SendMoneyResponse> SendMoney(SendMoneyRequestModel _request)
{
SendMoneyResponse _response = new SendMoneyResponse();
TPResponse _responseTP = new TPResponse();
using (HttpClient client = new HttpClient())
{
try
{
var content = new StringContent(JsonConvert.SerializeObject(_request), Encoding.UTF8, "application/json");
_logger.LogDebug("TPAPISERVICE | SENDMONEY | CALLING TPAPI | " + JsonConvert.SerializeObject(_request));
// Send the POST request
HttpResponseMessage response = await client.PostAsync("http://77.68.15.91:1083/api/v1/TP/mobileSendTxn", content);
_logger.LogDebug($"TPAPISERVICE | SENDMONEY | API RESPONSE | RESPONSE CODE: {response.StatusCode}| RESPONSE: {JsonConvert.SerializeObject(response.Content.ReadAsStringAsync())}");
// Check if the response is successful
if (response.IsSuccessStatusCode)
{
string responseContent = await response.Content.ReadAsStringAsync();
_responseTP = JsonConvert.DeserializeObject<TPResponse>(responseContent);
_response.ResponseCode = Convert.ToInt16(_responseTP.ResponseCode);
_response.ResponseMessage = _responseTP.Msg;
if (_response.ResponseCode == ResponseHelper.SUCCESS)
{
_response.ResponseCode = ResponseHelper.SUCCESS;
_response.ResponseMessage = _responseTP.Msg;
_response.ControlNo = _responseTP.Extra;
_response.TransactionId = _responseTP.Id;
_response.Extra2 = _responseTP.Extra2;
_response.Extra3 = _responseTP.Extra3;
}
}
else
{
_response.ResponseCode = ResponseHelper.FAILED;
_response.ResponseMessage = "Error occured while calling getting exrate from TPAPI: ";
_logger.LogError("TRANSACTIONREPOSITORY | SENDMONEY | ERROR | " + JsonConvert.SerializeObject(_response));
}
}
catch (Exception ex)
{
_response.ResponseCode = ResponseHelper.EXCEPTION;
_response.ResponseMessage = "Exception occured: " + ex.Message;
_logger.LogError("TRANSACTIONREPOSITORY | SENDMONEY | EXCEPTION | " + JsonConvert.SerializeObject(_response));
}
}
return _response;

BIN
CustomerOnlineV2/CustomerOnlineV2.Api/bin/Debug/net7.0/CustomerOnlineV2.Api.dll

BIN
CustomerOnlineV2/CustomerOnlineV2.Api/bin/Debug/net7.0/CustomerOnlineV2.Api.pdb

BIN
CustomerOnlineV2/CustomerOnlineV2.Api/bin/Debug/net7.0/CustomerOnlineV2.Common.dll

BIN
CustomerOnlineV2/CustomerOnlineV2.Api/bin/Debug/net7.0/CustomerOnlineV2.Common.pdb

BIN
CustomerOnlineV2/CustomerOnlineV2.Api/obj/Debug/net7.0/CustomerOnlineV2.Api.csproj.AssemblyReference.cache

BIN
CustomerOnlineV2/CustomerOnlineV2.Api/obj/Debug/net7.0/CustomerOnlineV2.Api.dll

BIN
CustomerOnlineV2/CustomerOnlineV2.Api/obj/Debug/net7.0/CustomerOnlineV2.Api.pdb

BIN
CustomerOnlineV2/CustomerOnlineV2.Api/obj/Debug/net7.0/ref/CustomerOnlineV2.Api.dll

BIN
CustomerOnlineV2/CustomerOnlineV2.Api/obj/Debug/net7.0/refint/CustomerOnlineV2.Api.dll

4
CustomerOnlineV2/CustomerOnlineV2.Business/Business/TransactionBusiness/ITransactionBusiness.cs

@ -5,6 +5,8 @@ namespace CustomerOnlineV2.Business.Business.TransactionBusiness
{
public interface ITransactionBusiness
{
Task<ExrateResponse> DoCalculation(SendTransactionModel calcModel, LoginResponse loginDetails);
Task<ExrateResponse> DoCalculation(SendTransactionModel calcRequest, LoginResponse loginDetails);
Task<SendMoneyResponse> SendMoney(SendTransactionModel sendMoneyRequest, LoginResponse loginDetails);
Task<SendMoneySuccessModel> GetTransactionDetails(string id, LoginResponse loginDetails);
}
}

265
CustomerOnlineV2/CustomerOnlineV2.Business/Business/TransactionBusiness/TransactionBusiness.cs

@ -22,39 +22,238 @@ namespace CustomerOnlineV2.Business.Business.TransactionBusiness
_tpApi = tpApi;
}
public async Task<ExrateResponse> DoCalculation(SendTransactionModel calcModel, LoginResponse loginDetails)
public async Task<ExrateResponse> DoCalculation(SendTransactionModel calcRequest, LoginResponse loginDetails)
{
ExrateResponse _response = new ExrateResponse();
_logger.LogDebug("TRANSACTIONBUSINESS | DOCALCULATION | REQUEST | " + JsonConvert.SerializeObject(calcModel));
_response = ValidateExrateRequest(calcModel);
_logger.LogDebug("TRANSACTIONBUSINESS | DOCALCULATION | REQUEST | " + JsonConvert.SerializeObject(calcRequest));
_response = ValidateExrateRequest(calcRequest);
if (_response.ResponseCode == ResponseHelper.SUCCESS)
{
ExratePayoutDetailsModel _partnerDetails = await _transactionRepo.GetPayoutDetails(calcModel, loginDetails);
ExratePayoutDetailsModel _partnerDetails = await _transactionRepo.GetPayoutDetails(calcRequest, loginDetails);
ExrateCalculateRequestModel _request = GenerateExrateParams(calcModel, loginDetails, _partnerDetails);
ExrateCalculateRequestModel _request = GenerateExrateParams(calcRequest, loginDetails, _partnerDetails);
_response = await _tpApi.GetExRate(_request);
_response.ProcessId = calcRequest.ProcessId;
}
return _response;
}
private ExrateResponse ValidateExrateRequest(SendTransactionModel calcModel)
public async Task<SendMoneyResponse> SendMoney(SendTransactionModel sendMoneyRequest, LoginResponse loginDetails)
{
SendMoneyResponse _response = new SendMoneyResponse();
_logger.LogDebug("TRANSACTIONBUSINESS | SENDMONEY | REQUEST | " + JsonConvert.SerializeObject(sendMoneyRequest));
_response = ValidateSendMoneyRequest(sendMoneyRequest);
if (_response.ResponseCode == ResponseHelper.SUCCESS)
{
SendMoneyRequestModel _request = GenerateSendMoneyParams(sendMoneyRequest, loginDetails);
_response = await _tpApi.SendMoney(_request);
}
return _response;
}
public async Task<SendMoneySuccessModel> GetTransactionDetails(string id, LoginResponse loginDetails)
{
return await _transactionRepo.GetTransactionDetails(id, loginDetails);
}
private SendMoneyRequestModel GenerateSendMoneyParams(SendTransactionModel sendMoneyRequest, LoginResponse loginDetails)
{
return new SendMoneyRequestModel
{
SenderId = loginDetails.UserId,
SIpAddress = sendMoneyRequest.IpAddress,
IsRealtime = "false",
RequestBy = "mobile",
Receiver = new ReceiverModel { ReceiverId = sendMoneyRequest.Receiver },
CDDI = new CDDIModel
{
PurposeOfRemittance = sendMoneyRequest.PurposeOfRemit,
RelWithSender = "11331",
SourceOfFund = "11415"
},
SCountryId = Utilities.ReadFromAppSettings("OnlineAgent:SendingCountry"),
PCountryId = sendMoneyRequest.ReceivingCountry,
DeliveryMethodId = sendMoneyRequest.DeliveryMethod,
CollCurr = Utilities.ReadFromAppSettings("OnlineAgent:CollCurrency"),
PayoutCurr = sendMoneyRequest.PayoutCurrency,
CollAmt = sendMoneyRequest.CollectAmount,
PayoutAmt = sendMoneyRequest.PayoutAmount,
TransferAmt = sendMoneyRequest.TransferAmount,
ServiceCharge = sendMoneyRequest.ServiceCharge,
ExRate = sendMoneyRequest.ExRate,
CalBy = sendMoneyRequest.CalcBy,
TpExRate = sendMoneyRequest.ExRate,
TpPCurr = sendMoneyRequest.PayoutCurrency,
PayOutPartnerId = sendMoneyRequest.PayoutPartner,
ForexSessionId = sendMoneyRequest.ForexSessionId,
PaymentType = "wallet",
SchemeId = "",
ProcessId = sendMoneyRequest.ProcessId,
UserName = loginDetails.UserName
};
}
private ExrateCalculateRequestModel GenerateExrateParams(SendTransactionModel calcRequest, LoginResponse loginDetails, ExratePayoutDetailsModel partnerDetails)
{
return new ExrateCalculateRequestModel()
{
RequestedBy = "mobile",
SCountry = Utilities.ReadFromAppSettings("OnlineAgent:SendingCountry"),
SSuperAgent = Utilities.ReadFromAppSettings("OnlineAgent:SuperAgentId"),
SBranch = Utilities.ReadFromAppSettings("OnlineAgent:BranchId"),
CollCurrency = Utilities.ReadFromAppSettings("OnlineAgent:CollCurrency"),
PayoutPartner = partnerDetails.PayoutPartner,
PCountry = calcRequest.ReceivingCountry,
PCountryName = partnerDetails.PayoutCountryName,
pCountryCode = partnerDetails.PayoutCountryCode,
PCurrency = partnerDetails.PayoutCurrency,
SCurrency = Utilities.ReadFromAppSettings("OnlineAgent:CollCurrency"),
CAmount = calcRequest.CollectAmount,
PAmount = calcRequest.PayoutAmount,
ServiceType = calcRequest.DeliveryMethod,
CalcBy = calcRequest.CalcBy,
PaymentType = "wallet",
IsManualSc = "false",
ManualSc = "0",
IsExRateCalcByPartner = "false",
ProcessFor = Utilities.ReadFromAppSettings("OnlineAgent:ProcessFor"),
ProcessId = calcRequest.ProcessId,
UserName = loginDetails.UserName,
SessionId = calcRequest.ProcessId
};
}
private SendMoneyResponse ValidateSendMoneyRequest(SendTransactionModel sendMoneyRequest)
{
SendMoneyResponse _response = new SendMoneyResponse();
_response.ResponseCode = ResponseHelper.SUCCESS;
_response.ResponseMessage = ResponseMessageHelper.SUCCESS;
if (string.IsNullOrEmpty(sendMoneyRequest.CalcBy))
{
_response.ResponseCode = ResponseHelper.FAILED;
_response.ResponseMessage = "Param calcBy can not be emoty!";
_logger.LogError("TRANSACTIONBUSINESS | SENDMONEY.VALIDATEEXRATEREQUEST | REQUEST | " + JsonConvert.SerializeObject(_response));
}
else if (sendMoneyRequest.CalcBy != "c")
{
if (sendMoneyRequest.CalcBy != "p")
{
_response.ResponseCode = ResponseHelper.FAILED;
_response.ResponseMessage = "Param calcBy have invalid value!";
_logger.LogError("TRANSACTIONBUSINESS | SENDMONEY.VALIDATEEXRATEREQUEST | REQUEST | " + JsonConvert.SerializeObject(_response));
}
}
else if (string.IsNullOrEmpty(sendMoneyRequest.ReceivingCountry))
{
_response.ResponseCode = ResponseHelper.FAILED;
_response.ResponseMessage = "Param ReceivingCountry can not be emoty!";
_logger.LogError("TRANSACTIONBUSINESS | SENDMONEY.VALIDATEEXRATEREQUEST | REQUEST | " + JsonConvert.SerializeObject(_response));
}
else if (string.IsNullOrEmpty(sendMoneyRequest.DeliveryMethod))
{
_response.ResponseCode = ResponseHelper.FAILED;
_response.ResponseMessage = "Param DeliveryMethod can not be emoty!";
_logger.LogError("TRANSACTIONBUSINESS | SENDMONEY.VALIDATEEXRATEREQUEST | REQUEST | " + JsonConvert.SerializeObject(_response));
}
else if (string.IsNullOrEmpty(sendMoneyRequest.CollectAmount))
{
_response.ResponseCode = ResponseHelper.FAILED;
_response.ResponseMessage = "Params CollectAmount can not be emoty!";
_logger.LogError("TRANSACTIONBUSINESS | SENDMONEY.VALIDATEEXRATEREQUEST | REQUEST | " + JsonConvert.SerializeObject(_response));
}
else if (string.IsNullOrEmpty(sendMoneyRequest.PayoutAmount))
{
_response.ResponseCode = ResponseHelper.FAILED;
_response.ResponseMessage = "Params PayoutAmount can not be emoty!";
_logger.LogError("TRANSACTIONBUSINESS | SENDMONEY.VALIDATEEXRATEREQUEST | REQUEST | " + JsonConvert.SerializeObject(_response));
}
else if (string.IsNullOrEmpty(sendMoneyRequest.CollMode))
{
_response.ResponseCode = ResponseHelper.FAILED;
_response.ResponseMessage = "Param CollMode can not be emoty!";
_logger.LogError("TRANSACTIONBUSINESS | SENDMONEY.VALIDATEEXRATEREQUEST | REQUEST | " + JsonConvert.SerializeObject(_response));
}
else if (Utilities.TryParseDecimal(sendMoneyRequest.CollectAmount) <= 0)
{
_response.ResponseCode = ResponseHelper.FAILED;
_response.ResponseMessage = "Param CollectAmount has invalid value!";
_logger.LogError("TRANSACTIONBUSINESS | SENDMONEY.VALIDATEEXRATEREQUEST | REQUEST | " + JsonConvert.SerializeObject(_response));
}
else if (Utilities.TryParseDecimal(sendMoneyRequest.PayoutAmount) <= 0)
{
_response.ResponseCode = ResponseHelper.FAILED;
_response.ResponseMessage = "Param PayoutAmount has invalid value!";
_logger.LogError("TRANSACTIONBUSINESS | SENDMONEY.VALIDATEEXRATEREQUEST | REQUEST | " + JsonConvert.SerializeObject(_response));
}
else if (sendMoneyRequest.CalcBy == "c" && Utilities.TryParseDecimal(sendMoneyRequest.CollectAmount) <= 0)
{
_response.ResponseCode = ResponseHelper.FAILED;
_response.ResponseMessage = "Param CollectAmount has invalid value!";
_logger.LogError("TRANSACTIONBUSINESS | SENDMONEY.VALIDATEEXRATEREQUEST | REQUEST | " + JsonConvert.SerializeObject(_response));
}
else if (sendMoneyRequest.CalcBy == "p" && Utilities.TryParseDecimal(sendMoneyRequest.PayoutAmount) <= 0)
{
_response.ResponseCode = ResponseHelper.FAILED;
_response.ResponseMessage = "Param PayoutAmount has invalid value!";
_logger.LogError("TRANSACTIONBUSINESS | SENDMONEY.VALIDATEEXRATEREQUEST | REQUEST | " + JsonConvert.SerializeObject(_response));
}
else if (string.IsNullOrEmpty(sendMoneyRequest.Receiver))
{
_response.ResponseCode = ResponseHelper.FAILED;
_response.ResponseMessage = "Params Receiver can not be emoty!";
_logger.LogError("TRANSACTIONBUSINESS | SENDMONEY.VALIDATEEXRATEREQUEST | REQUEST | " + JsonConvert.SerializeObject(_response));
}
else if (string.IsNullOrEmpty(sendMoneyRequest.PurposeOfRemit))
{
_response.ResponseCode = ResponseHelper.FAILED;
_response.ResponseMessage = "Params PurposeOfRemit can not be emoty!";
_logger.LogError("TRANSACTIONBUSINESS | SENDMONEY.VALIDATEEXRATEREQUEST | REQUEST | " + JsonConvert.SerializeObject(_response));
}
else if (Convert.ToBoolean(sendMoneyRequest.TermsAndConditions) != true)
{
_response.ResponseCode = ResponseHelper.FAILED;
_response.ResponseMessage = "Param TermsAndConditions has invalid value!";
_logger.LogError("TRANSACTIONBUSINESS | SENDMONEY.VALIDATEEXRATEREQUEST | REQUEST | " + JsonConvert.SerializeObject(_response));
}
return _response;
}
private ExrateResponse ValidateExrateRequest(SendTransactionModel calcRequest)
{
ExrateResponse _response = new ExrateResponse();
_response.ResponseCode = ResponseHelper.SUCCESS;
_response.ResponseMessage = ResponseMessageHelper.SUCCESS;
if (string.IsNullOrEmpty(calcModel.CalcBy))
if (string.IsNullOrEmpty(calcRequest.CalcBy))
{
_response.ResponseCode = ResponseHelper.FAILED;
_response.ResponseMessage = "Param calcBy can not be emoty!";
_logger.LogError("TRANSACTIONBUSINESS | DOCALCULATION.VALIDATEEXRATEREQUEST | REQUEST | " + JsonConvert.SerializeObject(_response));
}
else if (calcModel.CalcBy != "c")
else if (calcRequest.CalcBy != "c")
{
if (calcModel.CalcBy != "p")
if (calcRequest.CalcBy != "p")
{
_response.ResponseCode = ResponseHelper.FAILED;
_response.ResponseMessage = "Param calcBy have invalid value!";
@ -62,23 +261,23 @@ namespace CustomerOnlineV2.Business.Business.TransactionBusiness
_logger.LogError("TRANSACTIONBUSINESS | DOCALCULATION.VALIDATEEXRATEREQUEST | REQUEST | " + JsonConvert.SerializeObject(_response));
}
}
else if (string.IsNullOrEmpty(calcModel.ReceivingCountry))
else if (string.IsNullOrEmpty(calcRequest.ReceivingCountry))
{
_response.ResponseCode = ResponseHelper.FAILED;
_response.ResponseMessage = "Param ReceivingCountry can not be emoty!";
_logger.LogError("TRANSACTIONBUSINESS | DOCALCULATION.VALIDATEEXRATEREQUEST | REQUEST | " + JsonConvert.SerializeObject(_response));
}
else if (string.IsNullOrEmpty(calcModel.DeliveryMethod))
else if (string.IsNullOrEmpty(calcRequest.DeliveryMethod))
{
_response.ResponseCode = ResponseHelper.FAILED;
_response.ResponseMessage = "Param DeliveryMethod can not be emoty!";
_logger.LogError("TRANSACTIONBUSINESS | DOCALCULATION.VALIDATEEXRATEREQUEST | REQUEST | " + JsonConvert.SerializeObject(_response));
}
else if (string.IsNullOrEmpty(calcModel.CollectAmount))
else if (string.IsNullOrEmpty(calcRequest.CollectAmount))
{
if (string.IsNullOrEmpty(calcModel.PayoutAmount))
if (string.IsNullOrEmpty(calcRequest.PayoutAmount))
{
_response.ResponseCode = ResponseHelper.FAILED;
_response.ResponseMessage = "Params CollectAmount and PayoutAmount can not be emoty!";
@ -86,16 +285,16 @@ namespace CustomerOnlineV2.Business.Business.TransactionBusiness
_logger.LogError("TRANSACTIONBUSINESS | DOCALCULATION.VALIDATEEXRATEREQUEST | REQUEST | " + JsonConvert.SerializeObject(_response));
}
}
else if (string.IsNullOrEmpty(calcModel.CollMode))
else if (string.IsNullOrEmpty(calcRequest.CollMode))
{
_response.ResponseCode = ResponseHelper.FAILED;
_response.ResponseMessage = "Param CollMode can not be emoty!";
_logger.LogError("TRANSACTIONBUSINESS | DOCALCULATION.VALIDATEEXRATEREQUEST | REQUEST | " + JsonConvert.SerializeObject(_response));
}
else if (Utilities.TryParseDecimal(calcModel.CollectAmount) <= 0)
else if (Utilities.TryParseDecimal(calcRequest.CollectAmount) <= 0)
{
if (Utilities.TryParseDecimal(calcModel.PayoutAmount) <= 0)
if (Utilities.TryParseDecimal(calcRequest.PayoutAmount) <= 0)
{
_response.ResponseCode = ResponseHelper.FAILED;
_response.ResponseMessage = "Param CollectAmount or PayoutAmount has invalid value!";
@ -103,14 +302,14 @@ namespace CustomerOnlineV2.Business.Business.TransactionBusiness
_logger.LogError("TRANSACTIONBUSINESS | DOCALCULATION.VALIDATEEXRATEREQUEST | REQUEST | " + JsonConvert.SerializeObject(_response));
}
}
else if (calcModel.CalcBy == "c" && Utilities.TryParseDecimal(calcModel.CollectAmount) <= 0)
else if (calcRequest.CalcBy == "c" && Utilities.TryParseDecimal(calcRequest.CollectAmount) <= 0)
{
_response.ResponseCode = ResponseHelper.FAILED;
_response.ResponseMessage = "Param CollectAmount has invalid value!";
_logger.LogError("TRANSACTIONBUSINESS | DOCALCULATION.VALIDATEEXRATEREQUEST | REQUEST | " + JsonConvert.SerializeObject(_response));
}
else if (calcModel.CalcBy == "p" && Utilities.TryParseDecimal(calcModel.PayoutAmount) <= 0)
else if (calcRequest.CalcBy == "p" && Utilities.TryParseDecimal(calcRequest.PayoutAmount) <= 0)
{
_response.ResponseCode = ResponseHelper.FAILED;
_response.ResponseMessage = "Param PayoutAmount has invalid value!";
@ -119,35 +318,5 @@ namespace CustomerOnlineV2.Business.Business.TransactionBusiness
}
return _response;
}
private ExrateCalculateRequestModel GenerateExrateParams(SendTransactionModel 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.ReceivingCountry,
PCountryName = partnerDetails.PayoutCountryName,
pCountryCode = partnerDetails.PayoutCountryCode,
PCurrency = partnerDetails.PayoutCurrency,
SCurrency = Utilities.ReadFromAppSettings("OnlineAgent:CollCurrency"),
CAmount = calcModel.CollectAmount,
PAmount = calcModel.PayoutAmount,
ServiceType = calcModel.DeliveryMethod,
CalcBy = calcModel.CalcBy,
PaymentType = "wallet",
IsManualSc = "false",
ManualSc = "0",
IsExRateCalcByPartner = "false",
ProcessFor = Utilities.ReadFromAppSettings("OnlineAgent:ProcessFor"),
ProcessId = calcModel.ProcessId,
UserName = loginDetails.UserName,
SessionId = calcModel.ProcessId
};
}
}
}

BIN
CustomerOnlineV2/CustomerOnlineV2.Business/bin/Debug/net7.0/CustomerOnlineV2.Api.dll

BIN
CustomerOnlineV2/CustomerOnlineV2.Business/bin/Debug/net7.0/CustomerOnlineV2.Api.pdb

BIN
CustomerOnlineV2/CustomerOnlineV2.Business/bin/Debug/net7.0/CustomerOnlineV2.Business.dll

BIN
CustomerOnlineV2/CustomerOnlineV2.Business/bin/Debug/net7.0/CustomerOnlineV2.Business.pdb

BIN
CustomerOnlineV2/CustomerOnlineV2.Business/bin/Debug/net7.0/CustomerOnlineV2.Common.dll

BIN
CustomerOnlineV2/CustomerOnlineV2.Business/bin/Debug/net7.0/CustomerOnlineV2.Common.pdb

BIN
CustomerOnlineV2/CustomerOnlineV2.Business/bin/Debug/net7.0/CustomerOnlineV2.Repository.dll

BIN
CustomerOnlineV2/CustomerOnlineV2.Business/bin/Debug/net7.0/CustomerOnlineV2.Repository.pdb

BIN
CustomerOnlineV2/CustomerOnlineV2.Business/obj/Debug/net7.0/CustomerOnlineV2.Business.csproj.AssemblyReference.cache

BIN
CustomerOnlineV2/CustomerOnlineV2.Business/obj/Debug/net7.0/CustomerOnlineV2.Business.dll

BIN
CustomerOnlineV2/CustomerOnlineV2.Business/obj/Debug/net7.0/CustomerOnlineV2.Business.pdb

BIN
CustomerOnlineV2/CustomerOnlineV2.Business/obj/Debug/net7.0/ref/CustomerOnlineV2.Business.dll

BIN
CustomerOnlineV2/CustomerOnlineV2.Business/obj/Debug/net7.0/refint/CustomerOnlineV2.Business.dll

8
CustomerOnlineV2/CustomerOnlineV2.Common/Helper/Utilities.cs

@ -58,5 +58,13 @@ namespace CustomerOnlineV2.Common.Helper
return 101;
}
}
public static string ShowDecimal(string strVal)
{
if (strVal != "")
return string.Format("{0:0,0.00}", double.Parse(strVal));
else
return strVal;
}
}
}

78
CustomerOnlineV2/CustomerOnlineV2.Common/Models/TransactionModel/ExrateResponse.cs

@ -47,6 +47,9 @@
public string? ModeOfPaymentName { get; set; }
public string? isSCExcluded { get; set; }
public string? discountedFee { get; set; }
//added for send txn
public string ProcessId { get; set; }
}
public class ExratePayoutDetailsModel : CommonResponse
@ -111,5 +114,80 @@
public string? TermsAndConditions { get; set; }
public string? ProcessId { get; set; }
public string? CalcBy { get; set; }
//set at the time of exrate calculation
public string? PayoutPartner { get; set; }
public string? PayoutCurrency { get; set; }
public string? IpAddress { get; set; }
public string? TransferAmount { get; set; }
public string? ServiceCharge { get; set; }
public string? ExRate { get; set; }
public string? ForexSessionId { get; set; }
}
public class SendMoneyRequestModel
{
public string? SenderId { get; set; }
public string? SIpAddress { get; set; }
public string? IsRealtime { get; set; }
public string? RequestedBy { get; set; }
public ReceiverModel? Receiver { get; set; }
public CDDIModel? CDDI { get; set; }
public string? SCountryId { get; set; }
public string? PCountryId { get; set; }
public string? DeliveryMethodId { get; set; }
public string? PBranchId { get; set; }
public string? PBankId { get; set; }
public string? CollCurr { get; set; }
public string? PayoutCurr { get; set; }
public string? CollAmt { get; set; }
public string? PayoutAmt { get; set; }
public string? TransferAmt { get; set; }
public string? ServiceCharge { get; set; }
public string? ExRate { get; set; }
public string? CalBy { get; set; }
public string? TpExRate { get; set; }
public string? TpPCurr { get; set; }
public string? PayOutPartnerId { get; set; }
public string? ForexSessionId { get; set; }
public string? PaymentType { get; set; }
public string? SchemeId { get; set; }
public string? ProcessId { get; set; }
public string? UserName { get; set; }
public string? SessionId { get; set; }
public string? RequestBy { get; set; }
}
public class ReceiverModel
{
public string? ReceiverId { get; set; }
}
public class CDDIModel
{
public string? PurposeOfRemittance { get; set; }
public string? otherPurposeOfRemittance { get; set; }
public string? RelWithSender { get; set; }
public string? SourceOfFund { get; set; }
public string? otherSourceOfFund { get; set; }
public string? GoodsOrigin { get; set; }
public string? GoodsType { get; set; }
public string? PortOfShipment { get; set; }
}
public class SendMoneyResponse : CommonResponse
{
public string? TransactionId { get; set; }
public string? ControlNo { get; set; }
public string? Extra2 { get; set; }
public string? Extra3 { get; set; }
}
public class SendMoneySuccessModel : CommonResponse
{
public string? ControlNo { get; set; }
public string? CollectAmount { get; set; }
public string? CollectCurrency { get; set; }
public string? ReceiverName { get; set; }
public string? TransactionId { get; set; }
}
}

BIN
CustomerOnlineV2/CustomerOnlineV2.Common/bin/Debug/net7.0/CustomerOnlineV2.Common.dll

BIN
CustomerOnlineV2/CustomerOnlineV2.Common/bin/Debug/net7.0/CustomerOnlineV2.Common.pdb

BIN
CustomerOnlineV2/CustomerOnlineV2.Common/obj/Debug/net7.0/CustomerOnlineV2.Common.dll

BIN
CustomerOnlineV2/CustomerOnlineV2.Common/obj/Debug/net7.0/CustomerOnlineV2.Common.pdb

BIN
CustomerOnlineV2/CustomerOnlineV2.Common/obj/Debug/net7.0/ref/CustomerOnlineV2.Common.dll

BIN
CustomerOnlineV2/CustomerOnlineV2.Common/obj/Debug/net7.0/refint/CustomerOnlineV2.Common.dll

3
CustomerOnlineV2/CustomerOnlineV2.Repository/Repository/TransactionRepository/ITransactionRepository.cs

@ -5,6 +5,7 @@ namespace CustomerOnlineV2.Repository.Repository.TransactionRepository
{
public interface ITransactionRepository
{
Task<ExratePayoutDetailsModel> GetPayoutDetails(SendTransactionModel calcModel, LoginResponse loginDetails);
Task<ExratePayoutDetailsModel> GetPayoutDetails(SendTransactionModel calcRequest, LoginResponse loginDetails);
Task<SendMoneySuccessModel> GetTransactionDetails(string id, LoginResponse loginDetails);
}
}

48
CustomerOnlineV2/CustomerOnlineV2.Repository/Repository/TransactionRepository/TransactionRepository.cs

@ -18,15 +18,15 @@ namespace CustomerOnlineV2.Repository.Repository.TransactionRepository
_connHelper = connHelper;
}
public async Task<ExratePayoutDetailsModel> GetPayoutDetails(SendTransactionModel calcModel, LoginResponse loginDetails)
public async Task<ExratePayoutDetailsModel> GetPayoutDetails(SendTransactionModel calcRequest, LoginResponse loginDetails)
{
ExratePayoutDetailsModel _response = new ExratePayoutDetailsModel();
try
{
var sql = "EXEC PROC_DYNAMIC_TABLE";
sql += " @Flag = " + _connHelper.FilterString("PayoutMethod");
sql += ",@CountryId = " + _connHelper.FilterString(calcModel.ReceivingCountry);
sql += ",@PaymentMethod = " + _connHelper.FilterString(calcModel.DeliveryMethod);
sql += ",@CountryId = " + _connHelper.FilterString(calcRequest.ReceivingCountry);
sql += ",@PaymentMethod = " + _connHelper.FilterString(calcRequest.DeliveryMethod);
sql += ",@UserEmail = " + _connHelper.FilterString(loginDetails.UserName);
_logger.LogDebug("TRANSACTIONREPOSITORY | GETPAYOUTDETAILS | SQL | " + sql);
@ -60,5 +60,47 @@ namespace CustomerOnlineV2.Repository.Repository.TransactionRepository
}
return await Task.FromResult(_response);
}
public async Task<SendMoneySuccessModel> GetTransactionDetails(string id, LoginResponse loginDetails)
{
SendMoneySuccessModel _response = new SendMoneySuccessModel();
try
{
var sql = "EXEC PROC_DYNAMIC_TABLE";
sql += " @Flag = " + _connHelper.FilterString("Txn-Detail");
sql += ",@UserEmail = " + _connHelper.FilterString(loginDetails.UserName);
sql += ",@id = " + _connHelper.FilterString(id);
_logger.LogDebug("TRANSACTIONREPOSITORY | GETTRANSACTIONDETAILS | SQL | " + sql);
var dt = _connHelper.ExecuteDataTable(sql);
if (dt == null || dt.Rows.Count <= 0)
{
_response.ResponseCode = ResponseHelper.FAILED;
_response.ResponseMessage = "DB Null Error!";
_logger.LogError("TRANSACTIONREPOSITORY | GETTRANSACTIONDETAILS | DB RESPONSE | " + JsonConvert.SerializeObject(_response));
}
else
{
_response.ResponseCode = ResponseHelper.SUCCESS;
_response.ResponseMessage = ResponseMessageHelper.SUCCESS;
_response.ControlNo = Convert.ToString(dt.Rows[0]["ControlNo"]);
_response.CollectAmount = Convert.ToString(dt.Rows[0]["camt"]);
_response.CollectCurrency = Convert.ToString(dt.Rows[0]["collCurr"]);
_response.ReceiverName = Convert.ToString(dt.Rows[0]["receivername"]);
_response.TransactionId = Convert.ToString(dt.Rows[0]["id"]);
}
}
catch (Exception ex)
{
_response.ResponseCode = ResponseHelper.EXCEPTION;
_response.ResponseMessage = "Exception occured: " + ex.Message;
_logger.LogError("TRANSACTIONREPOSITORY | GETTRANSACTIONDETAILS | EXCEPTION | " + JsonConvert.SerializeObject(_response));
}
return await Task.FromResult(_response);
}
}
}

BIN
CustomerOnlineV2/CustomerOnlineV2.Repository/bin/Debug/net7.0/CustomerOnlineV2.Common.dll

BIN
CustomerOnlineV2/CustomerOnlineV2.Repository/bin/Debug/net7.0/CustomerOnlineV2.Common.pdb

BIN
CustomerOnlineV2/CustomerOnlineV2.Repository/bin/Debug/net7.0/CustomerOnlineV2.Repository.dll

BIN
CustomerOnlineV2/CustomerOnlineV2.Repository/bin/Debug/net7.0/CustomerOnlineV2.Repository.pdb

BIN
CustomerOnlineV2/CustomerOnlineV2.Repository/obj/Debug/net7.0/CustomerOnlineV2.Repository.csproj.AssemblyReference.cache

BIN
CustomerOnlineV2/CustomerOnlineV2.Repository/obj/Debug/net7.0/CustomerOnlineV2.Repository.dll

BIN
CustomerOnlineV2/CustomerOnlineV2.Repository/obj/Debug/net7.0/CustomerOnlineV2.Repository.pdb

BIN
CustomerOnlineV2/CustomerOnlineV2.Repository/obj/Debug/net7.0/ref/CustomerOnlineV2.Repository.dll

BIN
CustomerOnlineV2/CustomerOnlineV2.Repository/obj/Debug/net7.0/refint/CustomerOnlineV2.Repository.dll

34
CustomerOnlineV2/CustomerOnlineV2/Controllers/TransactionController.cs

@ -37,9 +37,43 @@ namespace CustomerOnlineV2.Controllers
return _response;
}
[Authorization("SendMoney")]
public IActionResult SendMoney()
{
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
[Authorization("SendMoney")]
public async Task<SendMoneyResponse> SendMoney(SendTransactionModel calcModel)
{
SendMoneyResponse _response = new SendMoneyResponse();
var loginDetails = HttpContext.GetLoginDetails();
calcModel.IpAddress = Utilities.GetIpAddressv2(HttpContext);
calcModel.ProcessId = Convert.ToString(Guid.NewGuid());
using (LogContext.PushProperty("DebugId", calcModel.ProcessId))
{
_logger.LogInformation($"TRANSACTIONSERVICE | SENDMONEY | REQUEST | {JsonConvert.SerializeObject(calcModel)}");
_response = await _transactionBusiness.SendMoney(calcModel, loginDetails);
_logger.LogInformation($"TRANSACTIONSERVICE | SENDMONEY | RESPONSE | {JsonConvert.SerializeObject(_response)}");
}
return _response;
}
[Authorization("SendMoney")]
public async Task<IActionResult> Success([FromQuery] string id)
{
SendMoneySuccessModel _response = new SendMoneySuccessModel();
var loginDetails = HttpContext.GetLoginDetails();
using (LogContext.PushProperty("DebugId", id))
{
_logger.LogInformation($"TRANSACTIONSERVICE | SUCCESS | REQUEST | {id}");
_response = await _transactionBusiness.GetTransactionDetails(id, loginDetails);
_logger.LogInformation($"TRANSACTIONSERVICE | SUCCESS | RESPONSE | {JsonConvert.SerializeObject(_response)}");
}
return View(_response);
}
}
}

125
CustomerOnlineV2/CustomerOnlineV2/Views/Transaction/SendMoney.cshtml

@ -110,7 +110,7 @@
<div class="row">
<div class="mb-4">
<div class="form-check d-flex align-items-center">
<input class="form-check-input me-2" asp-for="TermsAndConditions" type="checkbox" required>
<input class="form-check-input me-2" asp-for="TermsAndConditions" type="checkbox" required />
<label class="form-check-label" for="TermsAndConditions" />I have read the details and confirm to send now.
</div>
</div>
@ -171,6 +171,17 @@
</div>
</div>
<input type="hidden" id="hdnCalcBy" />
<input type="hidden" id="hdnPayoutPartner" />
<input type="hidden" id="hdnPayoutCountryName" />
<input type="hidden" id="hdnPayoutCurrency" />
<input type="hidden" id="hdnExrateCalcByPartner" />
<input type="hidden" id="hdnPayoutCountryCode" />
<input type="hidden" id="hdnTransferAmount" />
<input type="hidden" id="hdnServiceCharge" />
<input type="hidden" id="hdnExRate" />
<input type="hidden" id="hdnForexSessionId" />
<input type="hidden" id="hdnProcessId" />
@section Scripts{
<script type="text/javascript">
$(document).ready(function () {
@ -331,6 +342,15 @@
$('#sCharge').text(NumberWithCommas(response.scCharge));
$('#tAmt').text(NumberWithCommas(response.sAmt) + ' ' + response.collCurr);
$('#pCurrency').text(response.pCurr);
//set hiddend fields for send money
$('#hdnPayoutPartner').val(response.payoutPartner);
$('#hdnPayoutCurrency').val(response.pCurr);
$('#hdnTransferAmount').val(response.sAmt);
$('#hdnServiceCharge').val(response.scCharge);
$('#hdnExRate').val(response.exRate);
$('#hdnForexSessionId').val(response.forexSessionId);
$('#hdnProcessId').val(response.processId);
},
error: function () {
return null;
@ -339,6 +359,109 @@
}
function SendMoney() {
DisableSendButton();
debugger
let receivingCountry = $('#ReceivingCountry').val();
let collMode = $('#CollMode').val();
let deliveryMethod = $('#DeliveryMethod').val();
let collectionAmount = parseFloat($('#CollectAmount').val());
let payoutAmount = parseFloat($('#PayoutAmount').val());
let promoCode = $('#PromoCode').val();
let calcBy = $('#hdnCalcBy').val();
let receiver = $('#Receiver').val();
let purposeOfRemit = $('#PurposeOfRemit').val();
let termsAndConditions = $('#TermsAndConditions').val();
let payoutPartner = $('#hdnPayoutPartner').val();
let payoutCurrency = $('#hdnPayoutCurrency').val();
let transferAmount = $('#hdnTransferAmount').val();
let serviceCharge = $('#hdnServiceCharge').val();
let exRate = $('#hdnExRate').val();
let forexSessionId = $('#hdnForexSessionId').val();
let processId = $('#hdnProcessId').val();
if (calcBy == '') {
ShowAlertMessage(1, 'Invalid param calculate by!');
EnableSendButton();
return false;
}
if (calcBy != 'c') {
if (calcBy != 'p') {
ShowAlertMessage(1, 'Invalid param calculate by!');
EnableSendButton();
return false;
}
}
if (isNaN(parseFloat($('#CollectAmount').val())))
collectionAmount = 0;
if (isNaN(parseFloat($('#PayoutAmount').val())))
payoutAmount = 0;
if (collectionAmount < 0) {
ShowAlertMessage(1, 'Invalid Collection Amount!');
EnableSendButton();
return false;
}
if (payoutAmount < 0) {
ShowAlertMessage(1, 'Invalid Collection Amount!');
EnableSendButton();
return false;
}
if (payoutAmount == 0 && collectionAmount == 0) {
ShowAlertMessage(1, 'Both collction amount and payout amount can not be empty!');
EnableSendButton();
return false;
}
let Data = {
ReceivingCountry: receivingCountry,
CollMode: collMode,
DeliveryMethod: deliveryMethod,
CollectAmount: collectionAmount,
PayoutAmount: payoutAmount,
PromoCode: promoCode,
CalcBy: calcBy,
Receiver: receiver,
PurposeOfRemit: purposeOfRemit,
TermsAndConditions: termsAndConditions,
PayoutPartner: payoutPartner,
PayoutCurrency: payoutCurrency,
TransferAmount: transferAmount,
ServiceCharge: serviceCharge,
ExRate: exRate,
ForexSessionId: forexSessionId,
ProcessId: processId
};
$.ajax(
{
type: 'POST',
url: '/Transaction/SendMoney',
data: Data,
processData: true,
headers: {
"RequestVerificationToken":
$('input[name="__RequestVerificationToken"]').val()
},
async: true,
success: function (response) {
EnableSendButton();
if (response.responseCode != 0) {
ShowAlertMessage(response.responseCode, response.responseMessage);
return;
}
window.location.replace("/Transaction/Success?id=" + response.transactionId);
},
error: function () {
return null;
}
});
}
function DisableCalculateButton() {
$('.btnText').hide();
$('#btnCalculate').css('cursor', 'not-allowed');

32
CustomerOnlineV2/CustomerOnlineV2/Views/Transaction/Success.cshtml

@ -0,0 +1,32 @@
@model CustomerOnlineV2.Common.Models.TransactionModel.SendMoneySuccessModel
@{
Layout = "_Layout2";
}
<div class="container">
<div class="row">
<!-- Middle Panel -->
<div class="col-lg-12">
<div class="mb-4">
<h3 class="fw-400">Send Money Confirmation</h3>
<p></p>
</div>
<div class="card">
<div class="card-body p-4">
<div class="row">
<div class="col-md-9 col-lg-7 col-xl-6 mx-auto align-items-center text-center">
<div class="my-4">
<p class="text-success text-20 lh-1"><i class="fas fa-check-circle"></i></p>
<p class="text-success text-8 fw-500 lh-1">Success!</p>
<p class="lead">Transactions Complete</p>
</div>
<p class="text-3 mb-4">You've Succesfully sent <span class="text-4 fw-500">@CustomerOnlineV2.Common.Helper.Utilities.ShowDecimal(Model.CollectAmount) @Model.CollectCurrency</span> to <span class="fw-500">@Model.ReceiverName</span>, See transaction details under <a href="/Transaction/Receipt?id=@Model.TransactionId">Transactions Details</a></p>
<div class="d-grid"><a href="/Transaction/SendMoney"><button class="btn btn-primary">Send Money Again</button></a></div>
<a class="text-3 d-inline-block btn-link mt-4" href="#"><i class="fas fa-print"></i> Print</a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>

BIN
CustomerOnlineV2/CustomerOnlineV2/bin/Debug/net7.0/CustomerOnlineV2.Api.dll

BIN
CustomerOnlineV2/CustomerOnlineV2/bin/Debug/net7.0/CustomerOnlineV2.Api.pdb

BIN
CustomerOnlineV2/CustomerOnlineV2/bin/Debug/net7.0/CustomerOnlineV2.Business.dll

BIN
CustomerOnlineV2/CustomerOnlineV2/bin/Debug/net7.0/CustomerOnlineV2.Business.pdb

BIN
CustomerOnlineV2/CustomerOnlineV2/bin/Debug/net7.0/CustomerOnlineV2.Common.dll

BIN
CustomerOnlineV2/CustomerOnlineV2/bin/Debug/net7.0/CustomerOnlineV2.Common.pdb

BIN
CustomerOnlineV2/CustomerOnlineV2/bin/Debug/net7.0/CustomerOnlineV2.Repository.dll

BIN
CustomerOnlineV2/CustomerOnlineV2/bin/Debug/net7.0/CustomerOnlineV2.Repository.pdb

BIN
CustomerOnlineV2/CustomerOnlineV2/bin/Debug/net7.0/CustomerOnlineV2.dll

BIN
CustomerOnlineV2/CustomerOnlineV2/bin/Debug/net7.0/CustomerOnlineV2.pdb

4
CustomerOnlineV2/CustomerOnlineV2/obj/Debug/net7.0/CustomerOnlineV2.GeneratedMSBuildEditorConfig.editorconfig

@ -48,6 +48,10 @@ build_metadata.AdditionalFiles.CssScope =
build_metadata.AdditionalFiles.TargetPath = Vmlld3NcVHJhbnNhY3Rpb25cU2VuZE1vbmV5LmNzaHRtbA==
build_metadata.AdditionalFiles.CssScope =
[D:/C\# Projects/UAT/JME_JAPAN/JME_Remit_UAT/Temp/Customer/CustomerPortal/CustomerOnlineV2/CustomerOnlineV2/Views/Transaction/Success.cshtml]
build_metadata.AdditionalFiles.TargetPath = Vmlld3NcVHJhbnNhY3Rpb25cU3VjY2Vzcy5jc2h0bWw=
build_metadata.AdditionalFiles.CssScope =
[D:/C\# Projects/UAT/JME_JAPAN/JME_Remit_UAT/Temp/Customer/CustomerPortal/CustomerOnlineV2/CustomerOnlineV2/Views/_ViewImports.cshtml]
build_metadata.AdditionalFiles.TargetPath = Vmlld3NcX1ZpZXdJbXBvcnRzLmNzaHRtbA==
build_metadata.AdditionalFiles.CssScope =

BIN
CustomerOnlineV2/CustomerOnlineV2/obj/Debug/net7.0/CustomerOnlineV2.csproj.AssemblyReference.cache

BIN
CustomerOnlineV2/CustomerOnlineV2/obj/Debug/net7.0/CustomerOnlineV2.dll

BIN
CustomerOnlineV2/CustomerOnlineV2/obj/Debug/net7.0/CustomerOnlineV2.pdb

2
CustomerOnlineV2/CustomerOnlineV2/obj/Debug/net7.0/project.razor.vs.json
File diff suppressed because it is too large
View File

BIN
CustomerOnlineV2/CustomerOnlineV2/obj/Debug/net7.0/ref/CustomerOnlineV2.dll

BIN
CustomerOnlineV2/CustomerOnlineV2/obj/Debug/net7.0/refint/CustomerOnlineV2.dll

7
DB/PROC_DYNAMIC_TABLE.sql

@ -12,6 +12,7 @@ ALTER PROC PROC_DYNAMIC_TABLE
,@Password VARCHAR(40) = NULL
,@ConfirmPassword VARCHAR(40) = NULL
,@ipAddress VARCHAR(20) = NULL
,@id BIGINT = NULL
)
AS;
SET NOCOUNT ON;
@ -256,6 +257,12 @@ BEGIN TRY
HAVING MIN(X.maxLimitAmt) > 0
ORDER BY serviceTypeId ASC
END
ELSE IF @Flag = 'Txn-Detail'
BEGIN
SELECT ControlNo = dbo.decryptdb(rt.controlNo), rt.receivername, rt.camt, rt.id
FROM remitTranTemp rt(NOLOCK)
WHERE id = @id
END
END TRY
BEGIN CATCH
SET @ErrorMsg = 'Internal Server Error: ' + ERROR_MESSAGE()

Loading…
Cancel
Save