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.
 
 
 

261 lines
10 KiB

using Business.TPApi;
using Common;
using Common.Helper;
using Common.Model.Remit;
using log4net;
using Newtonsoft.Json;
using System;
namespace Business.Remit
{
public class RemitBusiness : IRemitBusiness
{
private readonly ThirdPartyAPI _tpApi = new ThirdPartyAPI();
private static readonly ILog Log = LogManager.GetLogger(typeof(RemitBusiness));
public RemitBusiness() { }
public JsonRxResponse SearchTxnByControlNumber(SearchTxnModel searchTxn)
{
APIJsonResponse _apiJsonResponse = new APIJsonResponse();
JsonRxResponse _jsonResp = new JsonRxResponse();
try
{
Log.DebugFormat("SearchTxnByControlNumber | Calling SearchTxnByControlNumber method.");
SearchTxnThirdparty _searchTxn = new SearchTxnThirdparty
{
PBranch = GetStatic.ReadWebConfig("sBranch", ""),
ControlNo = searchTxn.controlNumber,
ProcessId = searchTxn.ProcessId,
RequestFrom = "mobile",
SessionId = searchTxn.ProcessId,
UserName = searchTxn.userID
};
APIJsonResponse _result = new APIJsonResponse();
//uncoment after creating the lo0gic in TP API
_result = _tpApi.ThirdPartyApiGetDataOnly<SearchTxnThirdparty, APIJsonResponse>(_searchTxn, "TP/payTxnCheck", out _apiJsonResponse);
//for now putting hardcode value by creating a dummy method
//_result = GetResponseDummyData(searchTxn);
Log.Debug("SearchTxnByControlNumber | Calling SearchTxnByControlNumber with response..." + JsonConvert.SerializeObject(_result));
return _jsonResp = new JsonRxResponse()
{
ErrorCode = _result.ResponseCode,
Id = _result.Id,
Msg = _result.Msg,
Data = _result.Data,
Extra = _result.Extra,
Extra2 = _result.Extra1
};
}
catch (Exception ex)
{
Log.Error("Something Went Wrong, Please Try Again!!", ex);
_jsonResp.SetResponse("1", "Could not complete the request.");
return _jsonResp;
}
}
public JsonRxResponse RedeemCashPayment(ConfirmTxnModel redeemTxn)
{
APIJsonResponse _apiJsonResponse = new APIJsonResponse();
JsonRxResponse _jsonResp = new JsonRxResponse();
try
{
Log.DebugFormat("RedeemCashPayment | Calling RedeemCashPayment method.");
ConfirmTxnThirdParty _confirmTxn = new ConfirmTxnThirdParty
{
PBranch = GetStatic.ReadWebConfig("sBranch", ""),
ControlNo = redeemTxn.controlNumber,
ProcessId = redeemTxn.ProcessId,
RequestFrom = "mobile",
SessionId = redeemTxn.ProcessId,
UserName = redeemTxn.userID,
txnId = redeemTxn.txnId,
password = redeemTxn.password
};
APIJsonResponse _result = new APIJsonResponse();
//uncoment after creating the lo0gic in TP API
_result = _tpApi.ThirdPartyApiGetDataOnly<ConfirmTxnThirdParty, APIJsonResponse>(_confirmTxn, "TP/payTxnConfirm", out _apiJsonResponse);
Log.Debug("RedeemCashPayment | Calling RedeemCashPayment with response..." + JsonConvert.SerializeObject(_result));
//for now returning harcode success value
return _jsonResp = new JsonRxResponse()
{
ErrorCode = _result.ResponseCode,
Msg = _result.Msg,
};
}
catch (Exception ex)
{
Log.Error("Something Went Wrong, Please Try Again!!", ex);
_jsonResp.SetResponse("1", "Could not complete the request.");
return _jsonResp;
}
}
public JsonRxResponse WithdrawWalletRequest(WithdrawWalletRequestModel withdrawWalletRequest)
{
APIJsonResponse _apiJsonResponse = new APIJsonResponse();
JsonRxResponse _jsonResp = new JsonRxResponse();
try
{
Log.DebugFormat("WithdrawWalletRequest | Calling WithdrawWalletRequest method.");
APIJsonResponse _result = new APIJsonResponse();
withdrawWalletRequest.UserName = withdrawWalletRequest.userID;
_result = _tpApi.ThirdPartyApiGetDataOnly<WithdrawWalletRequestModel, APIJsonResponse>(withdrawWalletRequest, "TP/withdrawWalletRequest", out _apiJsonResponse);
Log.Debug("WithdrawWalletRequest | Calling WithdrawWalletRequest with response..." + JsonConvert.SerializeObject(_result));
//for now returning harcode success value
return _jsonResp = new JsonRxResponse()
{
ErrorCode = _result.ResponseCode,
Id = _result.Id,
Msg = _result.Msg,
Data = _result.Data,
Extra = _result.Extra,
Extra2 = _result.Extra1
};
}
catch (Exception ex)
{
Log.Error("Something Went Wrong, Please Try Again!!", ex);
_jsonResp.SetResponse("1", "Could not complete the request.");
return _jsonResp;
}
}
public JsonRxResponse WithdrawFromWallet(WithdrawFromWalletModel withdrawWallet)
{
APIJsonResponse _apiJsonResponse = new APIJsonResponse();
JsonRxResponse _jsonResp = new JsonRxResponse();
try
{
Log.DebugFormat("WithdrawFromWallet | Calling WithdrawFromWallet method.");
APIJsonResponse _result = new APIJsonResponse();
withdrawWallet.UserName = withdrawWallet.userID;
_result = _tpApi.ThirdPartyApiGetDataOnly<WithdrawFromWalletModel, APIJsonResponse>(withdrawWallet, "TP/withdrawFromWallet", out _apiJsonResponse);
Log.Debug("WithdrawFromWallet | Calling WithdrawFromWallet with response..." + JsonConvert.SerializeObject(_result));
//for now returning harcode success value
return _jsonResp = new JsonRxResponse()
{
ErrorCode = _result.ResponseCode,
Msg = _result.Msg
};
}
catch (Exception ex)
{
Log.Error("Something Went Wrong, Please Try Again!!", ex);
_jsonResp.SetResponse("1", "Could not complete the request.");
return _jsonResp;
}
}
public APIJsonResponse GetResponseDummyData(SearchTxnModel searchTxn)
{
APIJsonResponse _apiResp = new APIJsonResponse();
if (searchTxn.controlNumber != "12345678")
{
_apiResp = new APIJsonResponse
{
ResponseCode = "1",
Msg = "Invalid Transaction!"
};
return _apiResp;
}
_apiResp = new APIJsonResponse
{
ResponseCode = "0",
Msg = "Success"
};
_apiResp.Data = new
{
txnId = "100001",
sendingCountryCode = "NP",
sendingCountryName = "Nepal",
controlNo = searchTxn.controlNumber,
tranDate = "2020-01-01",
senderName = "Test Sender For Nepal",
receiverName = "Test Recv. Name",
receiverAddress = "Mongolia, test address",
receiverMobile = "9848741445",
status = "Unpaid",
serviceFee = "0.00",
exrate = "2.00",
receivedAmount = "1000.00"
};
return _apiResp;
}
private APIJsonResponse GetResponseDummyDataWithdraw(WithdrawWalletRequestModel withdrawWalletRequest)
{
APIJsonResponse _apiResp = new APIJsonResponse();
if (GetStatic.ParseDouble(withdrawWalletRequest.amount) > 100000)
{
_apiResp = new APIJsonResponse
{
ResponseCode = "1",
Msg = "Withdraw amount can not be greater than 100,000!"
};
return _apiResp;
}
if (GetStatic.ParseDouble(withdrawWalletRequest.amount) < 1000)
{
_apiResp = new APIJsonResponse
{
ResponseCode = "1",
Msg = "Withdraw amount can not be less than 1000!"
};
return _apiResp;
}
_apiResp = new APIJsonResponse
{
ResponseCode = "0",
Msg = "Success"
};
string sc = "0";
if (GetStatic.ParseDouble(withdrawWalletRequest.amount) > 1000 && GetStatic.ParseDouble(withdrawWalletRequest.amount) <= 10000)
sc = "50";
if (GetStatic.ParseDouble(withdrawWalletRequest.amount) > 10000 && GetStatic.ParseDouble(withdrawWalletRequest.amount) <= 20000)
sc = "80";
if (GetStatic.ParseDouble(withdrawWalletRequest.amount) > 20000 && GetStatic.ParseDouble(withdrawWalletRequest.amount) <= 50000)
sc = "150";
if (GetStatic.ParseDouble(withdrawWalletRequest.amount) > 50000 && GetStatic.ParseDouble(withdrawWalletRequest.amount) <= 100000)
sc = "250";
_apiResp.Data = new
{
bankName = "Mangolia test Bank",
accountNo = "789748524",
serviceCharge = sc,
amount = withdrawWalletRequest.amount,
noticeMessage = "This is test notice msg!"
};
return _apiResp;
}
}
}