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.

602 lines
29 KiB

1 year ago
  1. using Common;
  2. using Common.Helper;
  3. using Common.KFTC;
  4. using Common.Model;
  5. using Common.Model.Config;
  6. using Common.Model.External;
  7. using Common.Model.SendMoney;
  8. using log4net;
  9. using System;
  10. using System.Collections.Generic;
  11. using System.Data;
  12. using System.Runtime.Remoting.Messaging;
  13. namespace Repository.SendMoney
  14. {
  15. public class SendMoneyRepository : ISendMoneyRepository
  16. {
  17. private readonly Dao _dao = null;
  18. private static readonly ILog Log = LogManager.GetLogger(typeof(SendMoneyRepository));
  19. public SendMoneyRepository()
  20. {
  21. _dao = new Dao();
  22. }
  23. public CountryServiceDetail LoadCountryServiceDetail(CountryServiceModel request)
  24. {
  25. var sql = "EXEC mobile_proc_sendMoney @flag='load'";
  26. sql += ", @pCountry = " + _dao.FilterString(request.Country);
  27. sql += ", @receiverId = " + _dao.FilterString(request.ReceiverId);
  28. sql += ", @customerId = " + _dao.FilterString(request.CustomerId);
  29. Log.DebugFormat("LoadCountryServiceDetail SQL:{0}", sql);
  30. var ds = _dao.ExecuteDataset(sql);
  31. if (ds == null)
  32. return null;
  33. if (ds.Tables.Count < 6)
  34. return null;
  35. CountryServiceDetail detail = new CountryServiceDetail();
  36. var ctry = ds.Tables[0];
  37. if (ctry.Rows.Count != 1)
  38. {
  39. return null;
  40. }
  41. detail.Id = Convert.ToString(ctry.Rows[0]["Id"]);
  42. detail.Name = Convert.ToString(ctry.Rows[0]["Name"]);
  43. detail.Code = Convert.ToString(ctry.Rows[0]["Code"]);
  44. var payMode = ds.Tables[1];
  45. List<Payoutmode> pmodeLs = new List<Payoutmode>();
  46. if (payMode.Rows.Count > 0)
  47. {
  48. foreach (DataRow dr in payMode.Rows)
  49. {
  50. var currs = Convert.ToString(dr["PayCurrency"]);
  51. var lscurr = new List<string>();
  52. if (!string.IsNullOrEmpty(currs))
  53. {
  54. string[] str = currs.Split(',').SelectDistinct();
  55. foreach (string s in str)
  56. {
  57. lscurr.Add(s);
  58. }
  59. }
  60. var pMode = new Payoutmode { Id = Convert.ToString(dr["ModeId"]), Mode = Convert.ToString(dr["Mode"]), PayoutPartner = Convert.ToString(dr["PayoutPartner"]), PayCurrency = lscurr, Bankrequired = Convert.ToString(dr["BankRequired"]) };
  61. if (pMode.Bankrequired.Equals("True"))
  62. {
  63. var banks = ds.Tables[2];
  64. var bankList = new List<Banks>();
  65. foreach (DataRow drr in banks.Rows)
  66. {
  67. if (pMode.Id.Equals(Convert.ToString(drr["AgentRole"])))
  68. {
  69. var b = new Banks
  70. {
  71. Id = Convert.ToString(drr["Id"]),
  72. Name = Convert.ToString(drr["Name"]),
  73. Code = Convert.ToString(drr["Code"]),
  74. BranchRequired = Convert.ToString(drr["BranchRequired"]),
  75. IsAccountRequired = Convert.ToString(drr["IsAccountRequired"]),
  76. IsAccountValidation = Convert.ToString(drr["IsAccountValidation"])
  77. };
  78. var durrBank = ds.Tables[3];
  79. var branchList = new List<BankBranch>();
  80. foreach (DataRow drBranch in durrBank.Rows)
  81. {
  82. if (Convert.ToString(drBranch["BankId"]).Equals(b.Id))
  83. {
  84. branchList.Add(new BankBranch { Id = Convert.ToString(drBranch["Id"]), Name = Convert.ToString(drBranch["Name"]) });
  85. }
  86. }
  87. if (b.BranchRequired.Equals("True"))
  88. {
  89. b.BranchList = branchList;
  90. }
  91. var durr = ds.Tables[4];
  92. List<string> pC = new List<string>();
  93. foreach (DataRow drrr in durr.Rows)
  94. {
  95. if (Convert.ToString(drrr["Id"]).Equals(b.Id))
  96. {
  97. pC.Add(Convert.ToString(drrr["Currency"]));
  98. }
  99. }
  100. b.PayCurrency = pC;
  101. bankList.Add(b);
  102. }
  103. pMode.BankList = bankList;
  104. }
  105. }
  106. pmodeLs.Add(pMode);
  107. }
  108. }
  109. detail.PayoutMode = pmodeLs;
  110. //var dt = ds.Tables[6];
  111. //List<AccountDetails> accountList = GetAllAccountList(dt);
  112. //detail.AccountList = accountList;
  113. return detail;
  114. }
  115. public List<AccountDetails> GetAllAccountList(DataTable dt)
  116. {
  117. List<AccountDetails> _accountDetails = new List<AccountDetails>();
  118. try
  119. {
  120. if (dt == null || dt.Rows.Count == 0)
  121. {
  122. return _accountDetails;
  123. }
  124. foreach (DataRow item in dt.Rows)
  125. {
  126. var accName = "";
  127. if (item["isApproved"].ToString() == "N")
  128. {
  129. accName = item["walletName"].ToString() + item["autoDebit"].ToString() + " (Unapproved)";
  130. }
  131. else
  132. {
  133. accName = item["walletName"].ToString() + item["autoDebit"].ToString();
  134. }
  135. accName += "(" + item["accountNumMasked"].ToString() + ")";
  136. AccountDetails _account = new AccountDetails();
  137. _account.Type = item["type"].ToString();
  138. _account.FintechUseNo = item["fintechUseNo"].ToString();
  139. _account.AccountName = item["accountName"].ToString();
  140. _account.BankCode = item["bankCode"].ToString();
  141. _account.AccountNum = item["accountNo"].ToString();
  142. _account.IsApproved = item["isApproved"].ToString();
  143. _account.AccessToken = item["accHolderInfoType"].ToString();
  144. _account.AccessToken = item["accHolderInfo"].ToString();
  145. _account.WalletName = item["walletName"].ToString();
  146. _account.AutoDebit = item["autoDebit"].ToString();
  147. _account.AccountNumMasked = item["accountNumMasked"].ToString();
  148. _account.FullAccountName = accName;
  149. _accountDetails.Add(_account);
  150. }
  151. return _accountDetails;
  152. }
  153. catch (Exception ex)
  154. {
  155. Log.Error("Exception tracked : " + ex.Message, ex);
  156. return _accountDetails;
  157. }
  158. }
  159. public List<BankBranch> LoadBankBranch(string country, string bank, string search)
  160. {
  161. var sql = "EXEC mobile_proc_sendMoney @flag='bankBranch'";
  162. sql += ", @pCountry = " + _dao.FilterString(country);
  163. sql += ", @bank = " + _dao.FilterString(bank);
  164. sql += ", @Search = " + _dao.FilterString(search);
  165. Log.DebugFormat("LoadBankBranch SQL:{0}", sql);
  166. var dt = _dao.ExecuteDataTable(sql);
  167. if (dt.Rows.Count < 1)
  168. return null;
  169. List<BankBranch> ls = new List<BankBranch>();
  170. foreach (DataRow dr in dt.Rows)
  171. {
  172. ls.Add(new BankBranch { Id = Convert.ToString(dr["Id"]), Name = Convert.ToString(dr["Name"]) });
  173. }
  174. return ls;
  175. }
  176. public RemittanceRequestModel GetTransactionDetail(MobileRemitRequest model)
  177. {
  178. RemittanceRequestModel req = new RemittanceRequestModel();
  179. try
  180. {
  181. var sql = "EXEC mobile_proc_txnDetail @flag='detail'";
  182. sql += ", @User = " + _dao.FilterString(model.User);
  183. sql += ", @SenderId = " + _dao.FilterString(model.SenderId);
  184. sql += ", @ReceiverId = " + _dao.FilterString(model.ReceiverId);
  185. sql += ", @DeliveryMethodId = " + _dao.FilterString(model.DeliveryMethodId);
  186. sql += ", @PBranch = " + _dao.FilterString(model.PBranch);
  187. sql += ", @PAgent = " + _dao.FilterString(model.PAgent);
  188. sql += ", @PCurr = " + _dao.FilterString(model.PCurr);
  189. sql += ", @CollCurr = " + _dao.FilterString(model.CollCurr);
  190. sql += ", @CollAmt = " + _dao.FilterString(model.CollAmt);
  191. sql += ", @PayoutAmt = " + _dao.FilterString(model.PayoutAmt);
  192. sql += ", @TransferAmt = " + _dao.FilterString(model.TransferAmt);
  193. sql += ", @ServiceCharge = " + _dao.FilterString(model.ServiceCharge);
  194. sql += ", @Discount = " + _dao.FilterString(model.Discount);
  195. sql += ", @ExRate = " + _dao.FilterString(model.ExRate);
  196. sql += ", @CalBy = " + _dao.FilterString(model.CalBy);
  197. //sql += ", @PurposeOfRemittance = " + _dao.FilterString(model.PurposeOfRemittance);
  198. //sql += ", @SourceOfFund = " + _dao.FilterString(model.SourceOfFund);
  199. //sql += ", @RelWithSender = " + _dao.FilterString(model.RelWithSender);
  200. sql += ", @IpAddress = " + _dao.FilterString(model.IpAddress);
  201. sql += ", @TpExRate = " + _dao.FilterString(model.TpExRate);
  202. sql += ", @TpPCurr = " + _dao.FilterString(model.TpPCurr);
  203. sql += ", @PayOutPartner = " + _dao.FilterString(model.PayOutPartner);
  204. sql += ", @FOREX_SESSION_ID = " + _dao.FilterString(model.FOREX_SESSION_ID);
  205. //sql += ", @KftcLogId = " + _dao.FilterString(model.KftcLogId);
  206. sql += ", @PaymentType = " + _dao.FilterString(model.PaymentType);
  207. sql += ", @IsAgreed = " + _dao.FilterString(model.IsAgreed);
  208. sql += ", @TxnPassword = " + _dao.FilterString(model.TxnPassword);
  209. sql += ", @ProcessId = " + _dao.FilterString(model.ProcessId);
  210. sql += ", @ReceiverAccountNo = " + _dao.FilterString(model.ReceiverAccountNo);
  211. Log.DebugFormat("GetTransactionDetail SQL:{0}", sql);
  212. Log.Debug(sql);
  213. var dr = _dao.ExecuteDataRow(sql);
  214. req.ErrorCode = Convert.ToString(dr["ErrorCode"]);
  215. req.Msg = Convert.ToString(dr["Msg"]);
  216. if (req.ErrorCode == "1")
  217. {
  218. return req;
  219. }
  220. req.User = Convert.ToString(dr["User"]);
  221. req.SenderId = Convert.ToString(dr["SenderId"]);
  222. req.SenderFirstName = Convert.ToString(dr["SenderFirstName"]);
  223. req.SenderMiddleName = Convert.ToString(dr["SenderMiddleName"]);
  224. req.SenderLastName1 = Convert.ToString(dr["SenderLastName1"]);
  225. req.SenderLastName2 = Convert.ToString(dr["SenderLastName2"]);
  226. req.SenderIdExpiryDate = Convert.ToString(dr["SenderIdExpiryDate"]);
  227. req.SenderOccuption = Convert.ToString(dr["SenderOccuption"]);
  228. req.SenderBirthDate = Convert.ToString(dr["SenderBirthDate"]);
  229. req.SenderEmail = Convert.ToString(dr["SenderEmail"]);
  230. req.SenderCity = Convert.ToString(dr["SenderCity"]);
  231. req.SenderPostalCode = Convert.ToString(dr["SenderPostalCode"]);
  232. req.SenderNativeCountry = Convert.ToString(dr["SenderNativeCountry"]);
  233. req.SenderIdType = Convert.ToString(dr["SenderIdType"]);
  234. req.SenderIdNo = Convert.ToString(dr["SenderIdNo"]);
  235. req.SenderMobile = Convert.ToString(dr["SenderMobile"]);
  236. req.SenderAddress = Convert.ToString(dr["SenderAddress"]);
  237. req.ReceiverId = Convert.ToString(dr["ReceiverId"]);
  238. req.ReceiverFullName = (Convert.ToString(dr["ReceiverFirstName"]) + " " + Convert.ToString(dr["ReceiverMiddleName"])).Trim() + " " + Convert.ToString(dr["ReceiverLastName"]);
  239. req.ReceiverFirstName = Convert.ToString(dr["ReceiverFirstName"]);
  240. req.ReceiverMiddleName = Convert.ToString(dr["ReceiverMiddleName"]);
  241. req.ReceiverLastName = Convert.ToString(dr["ReceiverLastName"]);
  242. req.ReceiverIdType = Convert.ToString(dr["ReceiverIdType"]);
  243. req.ReceiverIdNo = Convert.ToString(dr["ReceiverIdNo"]);
  244. req.ReceiverIdValid = Convert.ToString(dr["ReceiverIdValid"]);
  245. req.ReceiverDob = Convert.ToString(dr["ReceiverDob"]);
  246. req.ReceiverTel = Convert.ToString(dr["ReceiverTel"]);
  247. req.ReceiverMobile = Convert.ToString(dr["ReceiverMobile"]);
  248. req.ReceiverNativeCountry = Convert.ToString(dr["ReceiverNativeCountry"]);
  249. req.ReceiverCity = Convert.ToString(dr["ReceiverCity"]);
  250. req.ReceiverAdd1 = Convert.ToString(dr["ReceiverAdd1"]);
  251. req.ReceiverEmail = Convert.ToString(dr["ReceiverEmail"]);
  252. req.ReceiverAccountNo = Convert.ToString(dr["ReceiverAccountNo"]);
  253. req.ReceiverCountry = Convert.ToString(dr["ReceiverCountry"]);
  254. req.ReceiverCountryId = Convert.ToString(dr["ReceiverCountryId"]);
  255. req.DepositMode = Convert.ToString(dr["DepositMode"]);
  256. req.DeliveryMethod = Convert.ToString(dr["DeliveryMethod"]);
  257. req.DeliveryMethodId = Convert.ToString(dr["DeliveryMethodId"]);
  258. req.PBranch = Convert.ToString(dr["PBranch"]);
  259. req.PBranchName = Convert.ToString(dr["PBranchName"]);
  260. req.PBranchCity = Convert.ToString(dr["PBranchCity"]);
  261. //req.PBranchRoutingCode = Convert.ToString(dr["PBranchRoutingCode"]);
  262. //req.PBranchRoutingType = Convert.ToString(dr["PBranchRoutingType"]);
  263. req.PAgent = Convert.ToString(dr["PAgent"]);
  264. req.PAgentName = Convert.ToString(dr["PAgentName"]);
  265. req.PBankType = Convert.ToString(dr["PBankType"]);
  266. req.PCurr = Convert.ToString(dr["PCurr"]);
  267. req.CollCurr = Convert.ToString(dr["CollCurr"]);
  268. req.CollAmt = Convert.ToString(dr["CollAmt"]);
  269. req.PayoutAmt = Convert.ToString(dr["PayoutAmt"]);
  270. req.TransferAmt = Convert.ToString(dr["TransferAmt"]);
  271. req.ServiceCharge = Convert.ToString(dr["ServiceCharge"]);
  272. req.Discount = Convert.ToString(dr["Discount"]);
  273. req.ExRate = Convert.ToString(dr["ExRate"]);
  274. req.CalBy = Convert.ToString(dr["CalBy"]);
  275. req.PurposeOfRemittance = Convert.ToString(dr["PurposeOfRemittance"]);
  276. req.SourceOfFund = Convert.ToString(dr["SourceOfFund"]);
  277. req.RelWithSender = Convert.ToString(dr["RelWithSender"]);
  278. req.Occupation = Convert.ToString(dr["SenderOccuption"]);
  279. req.PayoutMsg = Convert.ToString(dr["PayoutMsg"]);
  280. req.SendingAgent = Convert.ToString(dr["SendingAgent"]);
  281. req.SendingAgentName = Convert.ToString(dr["SendingAgentName"]);
  282. req.SendingSuperAgent = Convert.ToString(dr["SendingSuperAgent"]);
  283. req.IpAddress = Convert.ToString(dr["IpAddress"]);
  284. req.SCountryId = Convert.ToString(dr["SCountryId"]);
  285. req.SenderCountry = Convert.ToString(dr["SenderCountry"]);
  286. req.AgentRefId = Convert.ToString(dr["AgentRefId"]);
  287. //req.UnitaryBankAccountNo = Convert.ToString(dr["UnitaryBankAccountNo"]);
  288. req.RState = Convert.ToString(dr["RState"]);
  289. req.SBranch = Convert.ToString(dr["SBranch"]);
  290. req.RStateText = Convert.ToString(dr["RStateText"]);
  291. req.RLocation = Convert.ToString(dr["RLocation"]);
  292. req.RLocationText = Convert.ToString(dr["RLocationText"]);
  293. req.TpExRate = Convert.ToString(dr["TpExRate"]);
  294. req.TpPCurr = Convert.ToString(dr["TpPCurr"]);
  295. req.TpRefNo = Convert.ToString(dr["TpRefNo"]);
  296. req.TpTranId = Convert.ToString(dr["TpTranId"]);
  297. req.PayOutPartner = Convert.ToString(dr["PayOutPartner"]);
  298. req.FOREX_SESSION_ID = Convert.ToString(dr["FOREX_SESSION_ID"]);
  299. req.KftcLogId = Convert.ToString(dr["KftcLogId"]);
  300. req.PaymentType = Convert.ToString(dr["PaymentType"]);
  301. req.ProcessId = Convert.ToString(dr["ProcessId"]);
  302. req.PaymentAmount = Convert.ToString(dr["PaymentAmount"]);
  303. req.schemeId = model.schemeId;
  304. return req;
  305. }
  306. catch (Exception ex)
  307. {
  308. Log.Error("EXception has occured", ex);
  309. req.ErrorCode = "1";
  310. req.Msg = "Unauthorized transaction.";
  311. return req;
  312. }
  313. }
  314. public JsonRxResponse TrackTransaction(TrackTransactionParam param)
  315. {
  316. var lang = Convert.ToString(CallContext.GetData(Constants.Language));
  317. TrackTransactionResponse trackTranResponse = null;
  318. JsonRxResponse jsonRx = new JsonRxResponse();
  319. var sql = "EXEC mobile_proc_txnDetail @flag='track-transaction' ";
  320. sql += ", @controlNo = " + _dao.FilterString(param.ControlNo);
  321. Log.DebugFormat("TrackTransaction | SQL : {0}", sql);
  322. var dt = _dao.ExecuteDataRow(sql);
  323. string enumString = string.Empty;
  324. var code = dt["errorcode"];
  325. if (code.Equals("0"))
  326. {
  327. enumString = RESPONSE_MSG.TRACK_TRANSACTION_FAIL.ToString();
  328. }
  329. var map = Utilities.GetLanguageMapping(enumString, lang);
  330. //if (!Convert.ToString(dt["errorCode"]).Equals("0"))
  331. //{
  332. // return new JsonRxResponse()
  333. // {
  334. // ErrorCode = "1",
  335. // Msg = Convert.ToString(dt["msg"])
  336. // };
  337. //}
  338. trackTranResponse = new TrackTransactionResponse()
  339. {
  340. PayStatus = Convert.ToString(dt["payStatus"]),
  341. Bank = Convert.ToString(dt["bank"]),
  342. BankBranch = Convert.ToString(dt["branch"]),
  343. AccountNo = Convert.ToString(dt["AccountNo"]),
  344. Receiver = Convert.ToString(dt["Receiver"]),
  345. SendDate = Convert.ToString(dt["SendDate"]),
  346. CollAmt = Convert.ToString(dt["CollAmt"]),
  347. PayoutAmt = GetStatic.ShowDecimal(Convert.ToString(dt["PayAmount"]))
  348. };
  349. //return new JsonRxResponse()
  350. //{
  351. // ErrorCode = "0",
  352. // Msg = "Success",
  353. // Data = trackTranResponse
  354. //};
  355. return new JsonRxResponse { ErrorCode = code.Equals("0") ? "0" : "1", Msg = map.Message };
  356. }
  357. public JsonRxResponse AmendTransaction(TrackTransactionParam param)
  358. {
  359. var lang = Convert.ToString(CallContext.GetData(Constants.Language));
  360. var sql = "EXEC mobile_proc_txnDetail @flag='amend-transaction' ";
  361. sql += ", @controlNo = " + _dao.FilterString(param.ControlNo);
  362. sql += ", @tranId = " + _dao.FilterString(param.TranId);
  363. sql += ", @User = " + _dao.FilterString(param.UserId);
  364. sql += ", @Message = " + _dao.FilterString(param.Body);
  365. Log.DebugFormat("AmendTransaction | SQL : {0}", sql);
  366. var res = _dao.ParseDbResult(sql);
  367. string enumString = string.Empty;
  368. if (res.ResponseCode.Equals("0"))
  369. {
  370. enumString = RESPONSE_MSG.AMEND_TRANSACTION_SUCCESS.ToString();
  371. //return new JsonRxResponse { ErrorCode = res.ResponseCode, Msg = "Success", Data = msg };
  372. }
  373. else if (res.ResponseCode.Equals("1"))
  374. {
  375. enumString = RESPONSE_MSG.AMEND_TRANSACTION_FAIL.ToString();
  376. }
  377. else if (res.ResponseCode.Equals("2"))
  378. {
  379. enumString = RESPONSE_MSG.AMEND_TRANSACTION_FAIL_5.ToString();
  380. }
  381. var map = Utilities.GetLanguageMapping(enumString, lang);
  382. return new JsonRxResponse { ErrorCode = res.ResponseCode.Equals("0") ? "0" : "1", Msg = map.Message, Data = new MessageResponse() { Message = map.Message } };
  383. //return new JsonRxResponse { ErrorCode = res.ResponseCode, Msg = res.Msg };
  384. }
  385. public JsonRxResponse AmendTransactionV2(AmendTransactionParam param, string xml)
  386. {
  387. var lang = Convert.ToString(CallContext.GetData(Constants.Language));
  388. // MessageResponse msg = null;
  389. var sql = "EXEC mobile_proc_txnDetail @flag='amend-transaction-v2' ";
  390. sql += ", @controlNo = " + _dao.FilterString(param.ControlNo);
  391. sql += ", @tranId = " + _dao.FilterString(param.TranId);
  392. sql += ", @User = " + _dao.FilterString(param.UserId);
  393. sql += ", @xml = '" + xml + "'";
  394. Log.DebugFormat("AmendTransactionV2 | SQL : {0}", sql);
  395. var res = _dao.ParseDbResult(sql);
  396. string enumString = string.Empty;
  397. if (res.ResponseCode.Equals("0"))
  398. {
  399. //var msg = new { Message = res.Msg };
  400. //return new JsonRxResponse { ErrorCode = res.ResponseCode, Msg = "Success", Data = msg };
  401. enumString = RESPONSE_MSG.AMEND_TRANSACTION_SUCCESS.ToString();
  402. }
  403. else if (res.ResponseCode.Equals("1"))
  404. {
  405. enumString = RESPONSE_MSG.AMEND_TRANSACTION_V2_FAIL_1.ToString();
  406. }
  407. else if (res.ResponseCode.Equals("2"))
  408. {
  409. enumString = RESPONSE_MSG.AMEND_TRANSACTION_V2_FAIL_2.ToString();
  410. }
  411. else if (res.ResponseCode.Equals("3"))
  412. {
  413. enumString = RESPONSE_MSG.AMEND_TRANSACTION_V2_FAIL_3.ToString();
  414. }
  415. else if (res.ResponseCode.Equals("4"))
  416. {
  417. enumString = RESPONSE_MSG.AMEND_TRANSACTION_V2_FAIL_4.ToString();
  418. }
  419. else if (res.ResponseCode.Equals("5"))
  420. {
  421. enumString = RESPONSE_MSG.AMEND_TRANSACTION_V2_FAIL_5.ToString();
  422. }
  423. var map = Utilities.GetLanguageMapping(enumString, lang);
  424. return new JsonRxResponse { ErrorCode = res.Equals("0") ? "0" : "1", Msg = map.Message, Data = new MessageResponse() { Message = map.Message } };
  425. //return new JsonRxResponse { ErrorCode = res.ResponseCode, Msg = res.Msg };
  426. }
  427. public JsonRxResponse CancelTransaction(TrackTransactionParam param)
  428. {
  429. var lang = Convert.ToString(CallContext.GetData(Constants.Language));
  430. //MessageResponse msg = null;
  431. var sql = "EXEC mobile_proc_txnDetail @flag='cancel-transaction' ";
  432. sql += ", @controlNo = " + _dao.FilterString(param.ControlNo);
  433. sql += ", @tranId = " + _dao.FilterString(param.TranId);
  434. sql += ", @User = " + _dao.FilterString(param.UserId);
  435. sql += ", @Message = " + _dao.FilterString(param.Body);
  436. Log.DebugFormat("CancelTransaction | SQL : {0}", sql);
  437. var res = _dao.ParseDbResult(sql);
  438. string enumString = string.Empty;
  439. if (res.ResponseCode.Equals("0"))
  440. {
  441. //var msg = new { Message = res.Msg };
  442. //return new JsonRxResponse { ErrorCode = res.ResponseCode, Msg = "Success", Data = msg };
  443. enumString = RESPONSE_MSG.CANCEL_TRANSACTION_SUCCESS.ToString();
  444. }
  445. else if (res.ResponseCode.Equals("1"))
  446. {
  447. enumString = RESPONSE_MSG.CANCEL_TRANSACTION_FAIL_1.ToString();
  448. }
  449. else if (res.ResponseCode.Equals("2"))
  450. {
  451. enumString = RESPONSE_MSG.CANCEL_TRANSACTION_FAIL_2.ToString();
  452. }
  453. else if (res.ResponseCode.Equals("3"))
  454. {
  455. enumString = RESPONSE_MSG.CANCEL_TRANSACTION_FAIL_7.ToString();
  456. }
  457. var map = Utilities.GetLanguageMapping(enumString, lang);
  458. return new JsonRxResponse { ErrorCode = res.ResponseCode.Equals("0") ? "0" : "1", Msg = map.Message, Data = new MessageResponse() { Message = map.Message } };
  459. //return new JsonRxResponse { ErrorCode = res.ResponseCode, Msg = res.Msg };
  460. }
  461. public JsonRxResponse RejectTransaction(RejectTransactionParam param)
  462. {
  463. var lang = Convert.ToString(CallContext.GetData(Constants.Language));
  464. //MessageResponse msg = null;
  465. var sql = "EXEC proc_ApproveHoldedTXN @flag='reject' ";
  466. //sql += ", @controlNo = " + _dao.FilterString(param.ControlNo);
  467. sql += ", @id = " + _dao.FilterString(param.TranId);
  468. sql += ", @User = " + _dao.FilterString(param.UserId);
  469. sql += ", @remarks = " + _dao.FilterString(param.Body);
  470. sql += ", @branch = " + _dao.FilterString("Mobile");
  471. Log.DebugFormat("RejectTransaction | SQL : {0}", sql);
  472. var res = _dao.ParseDbResult(sql);
  473. string enumString = string.Empty;
  474. if (res.ResponseCode.Equals("0"))
  475. {
  476. //var msg = new { Message = res.Msg };
  477. //return new JsonRxResponse { ErrorCode = res.ResponseCode, Msg = "Success", Data = msg };
  478. enumString = RESPONSE_MSG.REJECT_TRANSACTION_SUCCESS.ToString();
  479. }
  480. else if (res.ResponseCode.Equals("1"))
  481. {
  482. enumString = RESPONSE_MSG.CANCEL_TRANSACTION_FAIL_1.ToString();
  483. }
  484. else if (res.ResponseCode.Equals("2"))
  485. {
  486. enumString = RESPONSE_MSG.REJECT_TRANSACTION_FAIL.ToString();
  487. }
  488. var map = Utilities.GetLanguageMapping(enumString, lang);
  489. return new JsonRxResponse { ErrorCode = res.ResponseCode.Equals("0") ? "0" : "1", Msg = map.Message, Data = new MessageResponse() { Message = map.Message } };
  490. //return new JsonRxResponse { ErrorCode = res.ResponseCode, Msg = res.Msg };
  491. }
  492. public DbResult GetTxnApproveData(string user, string id)
  493. {
  494. var sql = "EXEC proc_ApproveHoldedTXN @flag='get-info' ";
  495. sql += ", @user = " + _dao.FilterString(user);
  496. sql += ", @id = " + _dao.FilterString(id);
  497. return _dao.ParseDbResult(sql);
  498. }
  499. public string GetCurrentBalance(string user)
  500. {
  501. var sql = "SELECT dbo.FNAGetCustomerACBal('" + user + "')";
  502. var res = _dao.GetSingleResult(sql);
  503. return res;
  504. }
  505. public DbResult CheckLoginPIN(string user, string txnPassword, string paymentType, string customerId)
  506. {
  507. string sql = sql = "EXEC proc_online_customer_login";
  508. sql += " @flag='checkpin'";
  509. sql += ", @customerEmail =" + _dao.FilterString(user);
  510. sql += ", @password =" + _dao.FilterString(txnPassword);
  511. Log.Debug("CheckLoginPIN | DB REQUEST : " + sql);
  512. return _dao.ParseDbResult(sql);
  513. }
  514. public DbResult CheckLoginPassword(string user, string txnPassword, string paymentType, string customerId)
  515. {
  516. string sql = "";
  517. if (paymentType.ToLower() == "wallet")
  518. {
  519. sql = "EXEC proc_online_customer_login";
  520. sql += " @flag='checkpass'";
  521. sql += ", @customerEmail =" + _dao.FilterString(user);
  522. sql += ", @password =" + _dao.FilterString(txnPassword);
  523. }
  524. else if (paymentType.ToLower() == "autodebit")
  525. {
  526. sql = "EXEC PROC_OTP_SEND_TXN";
  527. sql += " @FLAG ='VERIFY'";
  528. sql += ", @OTP_NUMBER =" + _dao.FilterString(txnPassword);
  529. sql += ", @CUSTOMERID =" + _dao.FilterString(customerId);
  530. }
  531. return _dao.ParseDbResult(sql);
  532. }
  533. public GetDetailForDllTxn GetDetailForDll(string SenderId, string ReceiverId)
  534. {
  535. string sql = "";
  536. sql = "EXEC [proc_GetDetailForDllTxn]";
  537. sql += " @SenderId =" + _dao.FilterString(SenderId);
  538. sql += ", @ReceiverId =" + _dao.FilterString(ReceiverId);
  539. var dt = _dao.ExecuteDataTable(sql);
  540. return Mapper.DataTableToClass<GetDetailForDllTxn>(dt)[0];
  541. }
  542. public CallbackTpResponse TransactionStatusCallback(BracBankStatusCallbackParam param)
  543. {
  544. CallbackTpResponse response = new CallbackTpResponse();
  545. return response;
  546. }
  547. }
  548. }