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.

3243 lines
154 KiB

1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
8 months ago
1 year ago
8 months ago
1 year ago
8 months ago
10 months ago
11 months ago
10 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
10 months ago
10 months ago
10 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
8 months ago
1 year ago
1 year ago
1 year ago
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.CustomerRegister;
  7. using Common.Model.Notification;
  8. using Common.Model.Remit;
  9. using Common.Model.RequestOTP;
  10. using log4net;
  11. using Newtonsoft.Json;
  12. using Repository.Utility;
  13. using System;
  14. using System.Collections.Generic;
  15. using System.Configuration;
  16. using System.Data;
  17. using System.Linq;
  18. using System.Runtime.Remoting.Messaging;
  19. using System.Text;
  20. using System.Threading.Tasks;
  21. using System.Web;
  22. using static Common.Model.DynamicReceiverSetup.DynamicReceiver;
  23. namespace Repository.Mobile
  24. {
  25. public class MobileServicesRepo : IMobileServicesRepo
  26. {
  27. private readonly Dao _dao = new Dao();
  28. private static readonly ILog Log = LogManager.GetLogger(typeof(MobileServicesRepo));
  29. public List<CountryServiceResponse> GetCountriesServices()
  30. {
  31. List<CountryServiceResponse> listExRate = null;
  32. var dt2 = new DataTable();
  33. var dt3 = new DataTable();
  34. var sql = "EXEC mobile_proc_GetCalculation @flag='get-exRateDetails'";
  35. Log.DebugFormat("GetCountriesServices SQL : {0}", sql);
  36. var dataSet = _dao.ExecuteDataset(sql);
  37. int countTable = dataSet.Tables.Count;
  38. var dt1 = dataSet.Tables[1];
  39. dt2 = dataSet.Tables[2];
  40. //if (countTable >= 2)
  41. //{
  42. // dt2 = dataSet.Tables[1];
  43. //}
  44. //if (countTable >= 3)
  45. //{
  46. // dt3 = dataSet.Tables[2];
  47. //}
  48. if (dataSet.Tables.Count == 4)
  49. {
  50. listExRate = new List<CountryServiceResponse>();
  51. //var operativeCountryTbl = dt1;
  52. var currencyTbl = dt1;
  53. var payoutMethodTbl = dt2;
  54. foreach (DataRow dt in currencyTbl.Rows)
  55. {
  56. var countryId = dt["countryId"].ToString();
  57. List<ServiceAvailable> listServiceAvailable = new List<ServiceAvailable>();
  58. var paymentMode = payoutMethodTbl.AsEnumerable().Where(x => x["countryId"].ToString() == countryId).ToList();
  59. foreach (DataRow payRow in paymentMode)
  60. {
  61. ServiceAvailable singleServiceAvailable = new ServiceAvailable()
  62. {
  63. id = payRow["payoutMethodId"].ToString(),
  64. text = payRow["payoutName"].ToString(),
  65. description = payRow["bussinessDescription"].ToString()
  66. };
  67. listServiceAvailable.Add(singleServiceAvailable);
  68. }
  69. CountryServiceResponse singleExRate = new CountryServiceResponse()
  70. {
  71. country = dt["countryName"].ToString(),
  72. countryCode = dt["countryCode"].ToString(),
  73. currency = dt["currencyCode"].ToString(),
  74. countryId = dt["countryId"].ToString(),
  75. serviceAvailable = listServiceAvailable
  76. };
  77. listExRate.Add(singleExRate);
  78. }
  79. return listExRate;
  80. }
  81. return null;
  82. }
  83. public JsonRxResponse RequestOTP(RequestOTPModel requestOTPModel)
  84. {
  85. var lang = Convert.ToString(CallContext.GetData(Constants.Language));
  86. var sql = "EXEC mobile_proc_OTPRequest @flag='REQUEST' ";
  87. sql += ", @USER_ID = " + _dao.FilterString(requestOTPModel.userId);
  88. sql += ", @OTP_CODE = " + _dao.FilterString(requestOTPModel.OTP);
  89. sql += ", @REQUEST_FOR = " + _dao.FilterString(requestOTPModel.requestFor);
  90. sql += ", @RECEIVER_ID = " + _dao.FilterString(requestOTPModel.receiverId);
  91. Log.DebugFormat("RequestOTP | SQL : {0}", sql);
  92. var _dbRes = _dao.ParseDbResult(sql);
  93. Log.Debug("RequestOTP | DB RESPONSE : " + JsonConvert.SerializeObject(_dbRes));
  94. List<string> successCode = new List<string> { "0", "100", "103" };
  95. return new JsonRxResponse
  96. {
  97. ErrorCode = successCode.Contains(_dbRes.ResponseCode) ? "0" : "1",
  98. Msg = _dbRes.Msg,
  99. Id = _dbRes.Id,
  100. Extra = _dbRes.Extra,
  101. Extra2 = _dbRes.Extra2,
  102. Extra3 = _dbRes.ResponseCode,
  103. };
  104. //return new JsonRxResponse
  105. //{
  106. // ErrorCode = _dbRes.ResponseCode,
  107. //Msg = _dbRes.Msg,
  108. //Extra = _dbRes.Id
  109. //};
  110. }
  111. public JsonRxResponse GetNotifyInfo(string customerId)
  112. {
  113. var lang = Convert.ToString(CallContext.GetData(Constants.Language));
  114. JsonRxResponse res = new JsonRxResponse();
  115. var sql = "EXEC proc_getNotifyInfo @flag='notice'";
  116. sql += " ,@customerId = " + _dao.FilterString(customerId);
  117. DataTable dt = _dao.ExecuteDataTable(sql);
  118. if (dt == null)
  119. {
  120. res.ErrorCode = "0";
  121. res.Msg = "SUCCESS";
  122. res.Data = null;
  123. }
  124. List<GetNotifiCationInfo> getNotifiCationInfos = new List<GetNotifiCationInfo>();
  125. foreach (DataRow dr in dt.Rows)
  126. {
  127. GetNotifiCationInfo getNotifiCationInfo = new GetNotifiCationInfo()
  128. {
  129. rowId = dr["rowId"].ToString(),
  130. title = dr["title"].ToString(),
  131. createDate = dr["createDate"].ToString(),
  132. isRead = dr["isRead"].ToString(),
  133. type = dr["Type"].ToString(),
  134. extra = (dr["Type"].ToString() == "1" ? dr["sentId"].ToString() : "")
  135. };
  136. getNotifiCationInfos.Add(getNotifiCationInfo);
  137. }
  138. var map = Utilities.GetLanguageMapping(RESPONSE_MSG.GET_NOTIFY_INFO_SUCCESS.ToString(), lang);
  139. res.ErrorCode = "0";
  140. res.Msg = map.Message;
  141. res.Data = getNotifiCationInfos.ToArray();
  142. // return res;
  143. return new JsonRxResponse { ErrorCode = res.ErrorCode, Msg = map.Message, Data = res.Data };
  144. }
  145. public JsonRxResponse GetNotifyDetailInfo(string rowId)
  146. {
  147. var lang = Convert.ToString(CallContext.GetData(Constants.Language));
  148. JsonRxResponse res = new JsonRxResponse();
  149. string sql = $@"SELECT title, body ,createDate, isRead ,imageURL FROM pushNotificationHistroy WHERE rowId = {rowId}";
  150. var dr = _dao.ExecuteDataRow(sql);
  151. if (dr == null)
  152. {
  153. res.ErrorCode = "0";
  154. res.Msg = "SUCCESS";
  155. res.Data = null;
  156. }
  157. GetNotifyCationDetailInfo getNotifiCationDetailInfo = new GetNotifyCationDetailInfo();
  158. getNotifiCationDetailInfo.title = dr["title"].ToString();
  159. getNotifiCationDetailInfo.body = dr["body"].ToString();
  160. getNotifiCationDetailInfo.createDate = dr["createDate"].ToString();
  161. if (dr["isRead"].ToString() == "0")
  162. {
  163. sql = $@"UPDATE pushNotificationHistroy SET isRead = 1 WHERE rowId={rowId}";
  164. _dao.ExecuteDataset(sql);
  165. }
  166. getNotifiCationDetailInfo.imageURL = dr["imageURL"].ToString();
  167. var map = Utilities.GetLanguageMapping(RESPONSE_MSG.GET_NOTIFY_DETAIL_INFO_SUCCESS.ToString(), lang);
  168. res.ErrorCode = "0";
  169. res.Msg = map.Message;
  170. res.Data = getNotifiCationDetailInfo;
  171. return new JsonRxResponse { ErrorCode = res.ErrorCode, Msg = map.Message, Data = res.Data };
  172. }
  173. public JsonRxResponse VerifyIdNumber(IDValidateModel iDValidate)
  174. {
  175. var sql = "EXEC proc_online_customer_login @flag='check-id' ";
  176. sql += ", @idnumber = " + _dao.FilterString(iDValidate.idnumber);
  177. sql += ", @idType = " + _dao.FilterString(iDValidate.type);
  178. Log.DebugFormat("VerifyIdNumber | SQL : {0}", sql);
  179. var _dbRes = _dao.ParseDbResult(sql);
  180. return new JsonRxResponse
  181. {
  182. ErrorCode = _dbRes.ResponseCode,
  183. Msg = _dbRes.Msg
  184. };
  185. }
  186. public List<KeyValues> GetPaymentMethod(string receiverId, string pcountryid)
  187. {
  188. List<KeyValues> lst = new List<KeyValues>();
  189. var sql = "EXEC proc_countryRateMaster @flag='getListById'";
  190. sql += ", @receiverId = " + _dao.FilterString(receiverId);
  191. //sql += ", @user = " + _dao.FilterString("mobileapi");
  192. sql += ", @countryId = " + _dao.FilterString(pcountryid);
  193. var dt = _dao.ExecuteDataTable(sql);
  194. foreach (DataRow row in dt.Rows)
  195. {
  196. lst.Add(new KeyValues() { Key = row["detailTitle"].ToString(), Value = row["detailDesc"].ToString() });
  197. }
  198. return lst;
  199. }
  200. public JsonRxResponse SubmitOTP(RequestOTPModel requestOTPModel)
  201. {
  202. var lang = Convert.ToString(CallContext.GetData(Constants.Language));
  203. //MessageResponse msg = null;
  204. var sql = "EXEC mobile_proc_OTPRequest @flag='SUBMIT' ";
  205. sql += ", @USER_ID = " + _dao.FilterString(requestOTPModel.userId);
  206. sql += ", @OTP_CODE = " + _dao.FilterString(requestOTPModel.OTP);
  207. sql += ", @REQUEST_FOR = " + _dao.FilterString(requestOTPModel.requestFor);
  208. sql += ", @RECEIVER_ID = " + _dao.FilterString(requestOTPModel.receiverId);
  209. Log.DebugFormat("SubmitOTP | Lang {0} | SQL : {1}", lang, sql);
  210. var _dbRes = _dao.ParseDbResult(sql);
  211. JsonRxResponse _resp = new JsonRxResponse
  212. {
  213. ErrorCode = _dbRes.ResponseCode,
  214. Msg = _dbRes.Msg
  215. };
  216. if (_dbRes.ResponseCode == "0")
  217. {
  218. _resp.Data = new
  219. {
  220. referenceId = _dbRes.Id
  221. };
  222. }
  223. string enumString = string.Empty;
  224. if (_dbRes.ResponseCode.Equals("0"))
  225. {
  226. enumString = RESPONSE_MSG.SUBMIT_OTP_SUCCESS.ToString();
  227. }
  228. else if (_dbRes.ResponseCode.Equals("1"))
  229. {
  230. enumString = RESPONSE_MSG.SUBMIT_OTP_FAIL_1.ToString();
  231. }
  232. else if (_dbRes.ResponseCode.Equals("2"))
  233. {
  234. enumString = RESPONSE_MSG.SUBMIT_OTP_FAIL_2.ToString();
  235. }
  236. else if (_dbRes.ResponseCode.Equals("3"))
  237. {
  238. enumString = RESPONSE_MSG.SUBMIT_OTP_FAIL_3.ToString();
  239. }
  240. else if (_dbRes.ResponseCode.Equals("4"))
  241. {
  242. enumString = RESPONSE_MSG.SUBMIT_OTP_FAIL_4.ToString();
  243. }
  244. var map = Utilities.GetLanguageMapping(enumString, lang);
  245. return new JsonRxResponse { ErrorCode = _dbRes.ResponseCode.Equals("0") ? "0" : "1", Msg = map.Message, Data = _dbRes };
  246. // return new JsonRxResponse { ErrorCode = _dbRes.ResponseCode, Msg = _dbRes.Msg };
  247. //return _resp;
  248. }
  249. public DataRow GetCustomerImageSavePath(string userId)
  250. {
  251. var sql = "EXEC proc_mobile_StaticData @flag= 'img-path'";
  252. sql += ", @customerId = " + _dao.FilterString(userId);
  253. Log.DebugFormat("GetCustomerImageSavePath | SQL:{0}", sql);
  254. return _dao.ExecuteDataRow(sql);
  255. }
  256. public JsonRxResponse RegisterKYCExistingCustomer(CustomerKYCModel kyc)
  257. {
  258. //KycResponse kycResponse = null;
  259. var lang = Convert.ToString(CallContext.GetData(Constants.Language));
  260. MessageResponse msg = null;
  261. JsonRxResponse jsonRx = new JsonRxResponse();
  262. var moduleInBytes = Encoding.UTF8.GetBytes(Common.Helper.ConstantValues.ModuleName.kyc);
  263. var sql = "EXEC mobile_proc_customerMaster_V2 @flag='i-existing'";
  264. sql += ", @username = " + _dao.FilterString(kyc.userId);
  265. sql += ", @type = " + _dao.FilterString(kyc.type);
  266. sql += ", @employeerName = " + _dao.FilterString(kyc.employeerName);
  267. sql += ", @monthlyIncome = " + _dao.FilterString(kyc.monthlyIncome);
  268. sql += ", @businessType = " + _dao.FilterString(kyc.businessType);
  269. sql += ", @mobile = " + _dao.FilterString(kyc.mobile);
  270. sql += ", @additionalAddress = N" + _dao.FilterString(kyc.additionalAddress);
  271. sql += ", @idType = " + _dao.FilterString(kyc.idType);
  272. sql += ", @additionalIdType = " + _dao.FilterString(kyc.additionalIdType);
  273. sql += ", @visaStatus = " + _dao.FilterString(kyc.visaStatus);
  274. //IMAGES
  275. sql += ", @idFront = " + _dao.FilterString(kyc.idFront);
  276. sql += ", @idBack = " + _dao.FilterString(kyc.idBack);
  277. sql += ", @idSide = " + _dao.FilterString(kyc.idSide);
  278. sql += ", @occupation = " + _dao.FilterString(kyc.occupation);
  279. sql += ", @purposeOfRegistration = " + _dao.FilterString(kyc.purposeOfRegistration);
  280. //OTHER FIELDS ADDED
  281. sql += ", @otherIdType = " + _dao.FilterString(kyc.otherIdType);
  282. sql += ", @otherOccupation = " + _dao.FilterString(kyc.otherOccupation);
  283. Log.DebugFormat("RegisterKYCExistingCustomer | SQL:{0}", sql);
  284. var dataTable = _dao.ParseDbResult(sql);
  285. jsonRx.SetResponse(dataTable.ResponseCode, dataTable.Msg, dataTable.Id);
  286. jsonRx.Extra = dataTable.Extra;
  287. // var res = _dao.ParseDbResult(sql);
  288. string enumString = string.Empty;
  289. if (dataTable.ResponseCode.Equals("0"))
  290. {
  291. enumString = RESPONSE_MSG.REGISTER_KYC_EXISTING_CUSTOMER_SUCCESS.ToString();
  292. }
  293. else if (dataTable.ResponseCode.Equals("1"))
  294. {
  295. enumString = RESPONSE_MSG.REGISTER_KYC_EXISTING_CUSTOMER_FAIL_1.ToString();
  296. }
  297. else if (dataTable.ResponseCode.Equals("2"))
  298. {
  299. enumString = RESPONSE_MSG.REGISTER_KYC_EXISTING_CUSTOMER_FAIL_2.ToString();
  300. }
  301. var map = Utilities.GetLanguageMapping(enumString, lang);
  302. return new JsonRxResponse { ErrorCode = dataTable.ResponseCode.Equals("0") ? "0" : "1", Msg = map.Message.Replace("@mobile", dataTable.Extra) };
  303. //return new JsonRxResponse { ErrorCode = dataTable.ResponseCode, Msg = dataTable.Msg };
  304. //return jsonRx;
  305. }
  306. public JsonRxResponse RenewID(RenewID renewID)
  307. {
  308. var lang = Convert.ToString(CallContext.GetData(Constants.Language));
  309. JsonRxResponse jsonRx = new JsonRxResponse();
  310. var sql = "EXEC mobile_proc_customerMaster_V2 @flag= 'id-update'";
  311. sql += ", @username = " + _dao.FilterString(renewID.userId);
  312. sql += ", @idFront = " + _dao.FilterString(renewID.idFront);
  313. sql += ", @idback = " + _dao.FilterString(renewID.idBack);
  314. Log.DebugFormat("RenewID | SQL : {0}", sql);
  315. var dataTable = _dao.ParseDbResult(sql);
  316. string enumString = string.Empty;
  317. if (dataTable.ResponseCode.Equals("0"))
  318. {
  319. enumString = RESPONSE_MSG.RENEWID_SUCCESS.ToString();
  320. }
  321. var map = Utilities.GetLanguageMapping(enumString, lang);
  322. return new JsonRxResponse { ErrorCode = dataTable.ResponseCode, Msg = map.Message, Id = dataTable.Id };
  323. //jsonRx.SetResponse(dataTable.ResponseCode, dataTable.Msg, dataTable.Id);
  324. //jsonRx.Extra = dataTable.Extra;
  325. //return jsonRx;
  326. }
  327. public JsonRxResponse DepositSlip(DepositSlip depoSlip)
  328. {
  329. var lang = Convert.ToString(CallContext.GetData(Constants.Language));
  330. JsonRxResponse jsonRx = new JsonRxResponse();
  331. var sql = "EXEC proc_depositSlipUpload @flag= 'upload-deposit-slip'";
  332. sql += ", @username = " + _dao.FilterString(depoSlip.UserId);
  333. sql += ", @slip = " + _dao.FilterString(depoSlip.Slip);
  334. sql += ", @amount = " + _dao.FilterString(depoSlip.Amount);
  335. sql += ", @remarks = " + _dao.FilterString(depoSlip.Remarks);
  336. sql += ", @fileDescription = " + _dao.FilterString(MimeMapping.GetMimeMapping(depoSlip.Slip));
  337. Log.DebugFormat("DepositSlip | SQL : {0}", sql);
  338. var dataTable = _dao.ParseDbResult(sql);
  339. string enumString = string.Empty;
  340. if (dataTable.ResponseCode.Equals("0"))
  341. {
  342. enumString = RESPONSE_MSG.RENEWID_SUCCESS.ToString();
  343. }
  344. var map = Utilities.GetLanguageMapping(enumString, lang);
  345. return new JsonRxResponse { ErrorCode = dataTable.ResponseCode, Msg = map.Message, Id = dataTable.Id };
  346. //jsonRx.SetResponse(dataTable.ResponseCode, dataTable.Msg, dataTable.Id);
  347. //jsonRx.Extra = dataTable.Extra;
  348. //return jsonRx;
  349. }
  350. public DataRow checkAdditionalId(string kyc)
  351. {
  352. var sql = "EXEC proc_mobile_StaticData @flag='additional-Id'";
  353. sql += ", @additionalIdType = " + _dao.FilterString(kyc);
  354. Log.DebugFormat("checkAdditionalId | SQL:{0}", sql);
  355. return _dao.ExecuteDataRow(sql);
  356. }
  357. //public DataSet StaticQueryAddress()
  358. //{
  359. // var sql = "EXEC proc_mobile_StaticData @flag='Query-Address'";
  360. // return _dao.ExecuteDataset(sql);
  361. //}
  362. public JsonRxResponse RegisterKYC(CustomerKYCModel kyc)
  363. {
  364. //KycResponse kycResponse = null;
  365. var lang = Convert.ToString(CallContext.GetData(Constants.Language));
  366. JsonRxResponse jsonRx = new JsonRxResponse();
  367. var moduleInBytes = Encoding.UTF8.GetBytes(Common.Helper.ConstantValues.ModuleName.kyc);
  368. var sql = "EXEC mobile_proc_customerMaster_V2 @flag='i'";
  369. sql += ", @username = " + _dao.FilterString(kyc.userId);
  370. sql += ", @type = " + _dao.FilterString(kyc.type);
  371. sql += ", @employeerName = " + _dao.FilterString(kyc.employeerName);
  372. sql += ", @monthlyIncome = " + _dao.FilterString(kyc.monthlyIncome);
  373. sql += ", @businessType = " + _dao.FilterString(kyc.businessType);
  374. sql += ", @mobile = " + _dao.FilterString(kyc.mobile);
  375. //sql += ", @additionalAddress = N" + _dao.FilterString(kyc.additionalAddress);
  376. sql += ", @idType = " + _dao.FilterString(kyc.idType);
  377. sql += ", @idTypeNumber = " + _dao.FilterString(kyc.idNumber);
  378. sql += ", @idStartDate = " + _dao.FilterString(kyc.idStartDate);
  379. sql += ", @idEndDate = " + _dao.FilterString(kyc.idExpiryDate);
  380. sql += ", @idIssuingCountry = " + _dao.FilterString(kyc.idIssuingCountry);
  381. sql += ", @additionalIdType = " + _dao.FilterString(kyc.additionalIdType);
  382. //IMAGES
  383. sql += ", @idFront = " + _dao.FilterString(kyc.idFront);
  384. sql += ", @idBack = " + _dao.FilterString(kyc.idBack);
  385. sql += ", @idSide = " + _dao.FilterString(kyc.idSide);
  386. sql += ", @additionalId = " + _dao.FilterString(kyc.additionalId);
  387. sql += ", @additionalIdBack = " + _dao.FilterString(kyc.additionalIdBack);
  388. sql += ", @facePicture = " + _dao.FilterString(kyc.facePicture);
  389. sql += ", @occupation = " + _dao.FilterString(kyc.occupation);
  390. sql += ", @purposeOfRegistration = " + _dao.FilterString(kyc.purposeOfRegistration);
  391. //OTHER FIELDS ADDED
  392. sql += ", @otherIdType = " + _dao.FilterString(kyc.otherIdType);
  393. sql += ", @otherOccupation = " + _dao.FilterString(kyc.otherOccupation);
  394. sql += ", @rType = " + _dao.FilterString(kyc.RegistrationType);
  395. sql += ", @trustDocId = " + _dao.FilterString(kyc.TrustDocId);
  396. Log.DebugFormat("RegisterKYC | SQL : {0}", sql);
  397. var dataTable = _dao.ParseDbResult(sql);
  398. jsonRx.SetResponse(dataTable.ResponseCode, dataTable.Msg, dataTable.Id);
  399. jsonRx.Extra = dataTable.Extra;
  400. //var res = _dao.ParseDbResult(sql);
  401. return new JsonRxResponse { ErrorCode = dataTable.ResponseCode, Msg = dataTable.Msg };
  402. //return jsonRx;
  403. }
  404. public StaticData LoadFormStaticData(string type)
  405. {
  406. StaticData s = new StaticData();
  407. var sql = "EXEC proc_mobile_StaticData @flag=" + _dao.FilterString(type);
  408. Log.DebugFormat("LoadFormStaticData | SQL : {0}", sql);
  409. var ds = _dao.ExecuteDataset(sql);
  410. if (ds == null)
  411. {
  412. return null;
  413. }
  414. List<Country> ls = new List<Country>();
  415. if (ds.Tables.Count == 6)
  416. {
  417. var cdt = ds.Tables[0];
  418. foreach (DataRow dr in cdt.Rows)
  419. {
  420. Country c = new Country();
  421. c.Id = Convert.ToString(dr["countryId"]);
  422. c.Name = Convert.ToString(dr["country"]);
  423. c.Code = Convert.ToString(dr["Code"]);
  424. c.IsProvienceReq = Convert.ToString(dr["IsProvienceReq"]);
  425. var lsp = new List<Province>();
  426. var pdt = ds.Tables[1];
  427. var prov = from cc in pdt.AsEnumerable()
  428. where cc.Field<string>("countryId") == c.Id
  429. select new Province
  430. {
  431. id = cc.Field<string>("id"),
  432. text = cc.Field<string>("text")
  433. };
  434. foreach (var drp in prov)
  435. {
  436. Province p = new Province();
  437. p.id = Convert.ToString(drp.id);
  438. p.text = Convert.ToString(drp.text);
  439. var lsd = new List<District>();
  440. var ddt = ds.Tables[2];
  441. var dist = from dd in ddt.AsEnumerable()
  442. where dd.Field<string>("provinceId") == p.id
  443. select new
  444. {
  445. id = dd.Field<string>("id"),
  446. text = dd.Field<string>("text")
  447. };
  448. foreach (var drd in dist)
  449. {
  450. District d = new District();
  451. d.id = Convert.ToString(drd.id);
  452. d.text = Convert.ToString(drd.text);
  453. lsd.Add(d);
  454. }
  455. p.District = lsd;
  456. lsp.Add(p);
  457. }
  458. c.Provinces = lsp;
  459. ls.Add(c);
  460. }
  461. s.Country = ls;
  462. var tdt = ds.Tables[3];
  463. var tr = from cc in tdt.AsEnumerable()
  464. select new TransferReason
  465. {
  466. id = cc.Field<string>("id"),
  467. text = cc.Field<string>("text")
  468. };
  469. s.TransferReasons = tr.ToList();
  470. var rtd = ds.Tables[4];
  471. var rt = from cc in rtd.AsEnumerable()
  472. select new Relation
  473. {
  474. id = cc.Field<string>("id"),
  475. text = cc.Field<string>("text")
  476. };
  477. s.Relations = rt.ToList();
  478. var rtrid = ds.Tables[5];
  479. var rtid = from cc in rtrid.AsEnumerable()
  480. select new IdType
  481. {
  482. id = cc.Field<string>("id"),
  483. text = cc.Field<string>("text")
  484. };
  485. s.ReceiverIdType = rtid.ToList();
  486. return s;
  487. }
  488. return null;
  489. }
  490. public List<Receivers> GetReceiversByCustomer(string customer, string search)
  491. {
  492. List<Receivers> ls = new List<Receivers>();
  493. var sql = "EXEC mobile_proc_receiverSetup @flag='s_all' ";
  494. sql += ", @userId = " + _dao.FilterString(customer);
  495. sql += ", @search = " + _dao.FilterString(search);
  496. Log.DebugFormat("GetReceiversByCustomer | SQL:{0}", sql);
  497. var ds = _dao.ExecuteDataTable(sql);
  498. if (ds == null)
  499. {
  500. return null;
  501. }
  502. //if (ds.Rows.Count < 1)
  503. //{
  504. // return null;
  505. //}
  506. foreach (DataRow dt in ds.Rows)
  507. {
  508. var fileInBytes = Encoding.UTF8.GetBytes(dt["dpUrl"].ToString());
  509. var userIdInBytes = Encoding.UTF8.GetBytes(dt["userId"].ToString());
  510. Receivers receiver = new Receivers()
  511. {
  512. recipientId = dt["recipientId"].ToString(),
  513. firstName = dt["firstname"].ToString(),
  514. middleName = dt["middlename"].ToString(),
  515. lastName = dt["lastname"].ToString(),
  516. city = dt["city"].ToString(),
  517. state = dt["state"].ToString(),
  518. stateId = dt["stateId"].ToString(),
  519. district = dt["district"].ToString(),
  520. districtId = dt["districtId"].ToString(),
  521. address = dt["address"].ToString(),
  522. country = dt["country"].ToString(),
  523. countryId = dt["countryId"].ToString(),
  524. relation = dt["relation"].ToString(),
  525. relationId = dt["relationId"].ToString(),
  526. mobileNumber = dt["mobile"].ToString(),
  527. email = dt["email"].ToString(),
  528. reason = dt["transferReason"].ToString(),
  529. reasonId = dt["reasonId"].ToString(),
  530. dpUrl = ApplicationConfig.GetRootURL() + "handler/docs.ashx?img=" + Convert.ToBase64String(fileInBytes) + "&userId=" + Convert.ToBase64String(userIdInBytes),
  531. userId = dt["userId"].ToString(),
  532. countryCode = dt["countryCode"].ToString(),
  533. idType = dt["idType"].ToString(),
  534. idNumber = dt["idNumber"].ToString()
  535. };
  536. ls.Add(receiver);
  537. }
  538. return ls;
  539. }
  540. public Receivers GetReceiverDetail(string receiverId)
  541. {
  542. var sql = "EXEC mobile_proc_receiverSetup @flag='s_id' ";
  543. sql += ", @recipientId = " + _dao.FilterString(receiverId);
  544. Log.DebugFormat("GetReceiverDetail | SQL:{0}", sql);
  545. var dt = _dao.ExecuteDataRow(sql);
  546. if (dt == null)
  547. {
  548. return null;
  549. }
  550. var fileInBytes = Encoding.UTF8.GetBytes(dt["dpUrl"].ToString());
  551. var userIdInBytes = Encoding.UTF8.GetBytes(dt["userId"].ToString());
  552. Receivers receiver = new Receivers()
  553. {
  554. recipientId = dt["recipientId"].ToString(),
  555. firstName = dt["firstname"].ToString(),
  556. middleName = dt["middlename"].ToString(),
  557. lastName = dt["lastname"].ToString(),
  558. city = dt["city"].ToString(),
  559. state = dt["state"].ToString(),
  560. stateId = dt["stateId"].ToString(),
  561. district = dt["district"].ToString(),
  562. districtId = dt["districtId"].ToString(),
  563. address = dt["address"].ToString(),
  564. country = dt["country"].ToString(),
  565. countryId = dt["countryId"].ToString(),
  566. relation = dt["relation"].ToString(),
  567. relationId = dt["relationId"].ToString(),
  568. mobileNumber = dt["mobile"].ToString(),
  569. email = dt["email"].ToString(),
  570. reason = dt["transferReason"].ToString(),
  571. reasonId = dt["reasonId"].ToString(),
  572. dpUrl = ApplicationConfig.GetRootURL() + "handler/docs.ashx?img=" + Convert.ToBase64String(fileInBytes) + "&userId=" + Convert.ToBase64String(userIdInBytes),
  573. userId = dt["userId"].ToString(),
  574. countryCode = dt["countryCode"].ToString()
  575. };
  576. return receiver;
  577. }
  578. public JsonRxResponse ChangeTxnPin(ChangeTxnPinModel changeTxnPin)
  579. {
  580. var lang = Convert.ToString(CallContext.GetData(Constants.Language));
  581. var sql = "EXEC mobile_proc_customerMaster_V2 @flag='c-pin' ";
  582. sql += ", @username = " + _dao.FilterString(changeTxnPin.UserId);
  583. sql += ", @currentPin = " + _dao.FilterString(changeTxnPin.CurrentPin);
  584. sql += ", @newPin = " + _dao.FilterString(changeTxnPin.NewPin);
  585. sql += ", @confirmNewPin = " + _dao.FilterString(changeTxnPin.ConfirmNewPin);
  586. sql += ", @type = " + _dao.FilterString(changeTxnPin.Type);
  587. Log.DebugFormat("ChangeTxnPin | SQL : {0}", sql);
  588. var res = _dao.ParseDbResult(sql);
  589. string enumString = string.Empty;
  590. //msg = new MessageResponse { Message = res.Msg };
  591. if (res.ResponseCode.Equals("0"))
  592. {
  593. enumString = RESPONSE_MSG.CHANGE_TXN_PIN_SUCCESS.ToString();
  594. }
  595. else if (res.ResponseCode.Equals("1"))
  596. {
  597. enumString = RESPONSE_MSG.CHANGE_TXN_PIN_FAIL_1.ToString();
  598. }
  599. else if (res.ResponseCode.Equals("2"))
  600. {
  601. enumString = RESPONSE_MSG.CHANGE_TXN_PIN_FAIL_2.ToString();
  602. }
  603. else if (res.ResponseCode.Equals("3"))
  604. {
  605. enumString = RESPONSE_MSG.CHANGE_TXN_PIN_FAIL_3.ToString();
  606. }
  607. else if (res.ResponseCode.Equals("4"))
  608. {
  609. enumString = RESPONSE_MSG.CHANGE_TXN_PIN_FAIL_4.ToString();
  610. }
  611. var map = Utilities.GetLanguageMapping(enumString, lang);
  612. return new JsonRxResponse { ErrorCode = res.ResponseCode.Equals("0") ? "0" : "1", Msg = map.Message };
  613. }
  614. public JsonRxResponse ChangeSettings(ChangeSettingModel changeSettings)
  615. {
  616. string enumString = string.Empty;
  617. var lang = Convert.ToString(CallContext.GetData(Constants.Language));
  618. var sql = "EXEC mobile_proc_customerMaster_V2 @flag='update-settings' ";
  619. sql += ", @username = " + _dao.FilterString(changeSettings.UserId);
  620. sql += ", @SettingType = " + _dao.FilterString(changeSettings.SettingType.ToString());
  621. sql += ", @type = " + _dao.FilterString(changeSettings.Flag.ToString());
  622. sql += ", @customerPassword = " + _dao.FilterString(changeSettings.Password);
  623. sql += ", @token = " + _dao.FilterString(changeSettings.guid.ToString());
  624. //sql += ", @confirmNewPin = " + _dao.FilterString(changeSettings.ConfirmNewPin);
  625. Log.DebugFormat("ChangeSettings | lang {0} | SQL : {1}", lang, sql);
  626. var res = _dao.ParseDbResult(sql);
  627. if (res.ResponseCode.Equals("0"))
  628. {
  629. enumString = RESPONSE_MSG.CHANGE_SETTINGS_SUCCESS.ToString();
  630. }
  631. else if (res.ResponseCode.Equals("1"))
  632. {
  633. enumString = RESPONSE_MSG.CHANGE_SETTINGS_FAIL_1.ToString();
  634. }
  635. else if (res.ResponseCode.Equals("2"))
  636. {
  637. enumString = RESPONSE_MSG.CHANGE_SETTINGS_FAIL_2.ToString();
  638. }
  639. else if (res.ResponseCode.Equals("3"))
  640. {
  641. enumString = RESPONSE_MSG.CHANGE_SETTINGS_FAIL_3.ToString();
  642. }
  643. var map = Utilities.GetLanguageMapping(enumString, lang);
  644. return new JsonRxResponse { ErrorCode = res.ResponseCode.Equals("0") ? "0" : "1", Msg = map.Message, Id = res.Id };
  645. //return new JsonRxResponse { ErrorCode = res.ResponseCode, Msg = res.Msg, Id = res.Id };
  646. }
  647. public JsonRxResponse ChangePasswordAndTxnPin(ChangePasswordAndTxnPinModel changePasswordAndTxnPin)
  648. {
  649. var lang = Convert.ToString(CallContext.GetData(Constants.Language));
  650. MessageResponse msg = null;
  651. var sql = "EXEC mobile_proc_customerMaster_V2 @flag='c-pin-pwd' ";
  652. sql += ", @username = " + _dao.FilterString(changePasswordAndTxnPin.UserId);
  653. sql += ", @currentPin = " + _dao.FilterString(changePasswordAndTxnPin.CurrentPin);
  654. sql += ", @newPin = " + _dao.FilterString(changePasswordAndTxnPin.NewPin);
  655. sql += ", @confirmNewPin = " + _dao.FilterString(changePasswordAndTxnPin.ConfirmNewPin);
  656. sql += ", @currentPassword = " + _dao.FilterString(changePasswordAndTxnPin.CurrentPassword);
  657. sql += ", @NewPassword = " + _dao.FilterString(changePasswordAndTxnPin.NewPassword);
  658. sql += ", @ConfirmNewPassword = " + _dao.FilterString(changePasswordAndTxnPin.ConfirmNewPassword);
  659. Log.DebugFormat("ChangeTxnPin | SQL : {0}", sql);
  660. var res = _dao.ParseDbResult(sql);
  661. string enumString = string.Empty;
  662. if (res.ResponseCode.Equals("0"))
  663. {
  664. enumString = RESPONSE_MSG.CHANGE_PASSWORD_AND_TXN_PIN_SUCCESS.ToString();
  665. }
  666. else if (res.ResponseCode.Equals("1"))
  667. {
  668. enumString = RESPONSE_MSG.CHANGE_PASSWORD_AND_TXN_PIN_FAIL_1.ToString();
  669. }
  670. else if (res.ResponseCode.Equals("2"))
  671. {
  672. enumString = RESPONSE_MSG.CHANGE_PASSWORD_AND_TXN_PIN_FAIL_2.ToString();
  673. }
  674. else if (res.ResponseCode.Equals("3"))
  675. {
  676. enumString = RESPONSE_MSG.CHANGE_PASSWORD_AND_TXN_PIN_FAIL_3.ToString();
  677. }
  678. else if (res.ResponseCode.Equals("4"))
  679. {
  680. enumString = RESPONSE_MSG.CHANGE_PASSWORD_AND_TXN_PIN_FAIL_4.ToString();
  681. }
  682. else if (res.ResponseCode.Equals("5"))
  683. {
  684. enumString = RESPONSE_MSG.CHANGE_PASSWORD_AND_TXN_PIN_FAIL_5.ToString();
  685. }
  686. else if (res.ResponseCode.Equals("6"))
  687. {
  688. enumString = RESPONSE_MSG.CHANGE_PASSWORD_AND_TXN_PIN_FAIL_6.ToString();
  689. }
  690. else if (res.ResponseCode.Equals("7"))
  691. {
  692. enumString = RESPONSE_MSG.CHANGE_PASSWORD_AND_TXN_PIN_FAIL_7.ToString();
  693. }
  694. var map = Utilities.GetLanguageMapping(enumString, lang);
  695. return new JsonRxResponse { ErrorCode = res.ResponseCode.Equals("0") ? "0" : "1", Msg = map.Message, Data = new MessageResponse() { Message = map.Message } };
  696. }
  697. public Receivers SaveReceiver(ReceiverModel register, string userId)
  698. {
  699. Receivers receiver = null;
  700. var sql = "EXEC mobile_proc_receiverSetup ";
  701. if (!string.IsNullOrEmpty(register.Id))
  702. {
  703. sql += " @flag = 'u'";
  704. sql += ", @recipientId = " + _dao.FilterString(register.Id);
  705. }
  706. else
  707. {
  708. sql += " @flag = 'i'";
  709. }
  710. sql += ", @userId = " + _dao.FilterString(userId);
  711. sql += ", @firstName = " + _dao.FilterString(register.FirstName);
  712. sql += ", @middleName = " + _dao.FilterString(register.MiddleName);
  713. sql += ", @lastName = " + _dao.FilterString(register.LastName);
  714. sql += ", @country = " + _dao.FilterString(register.Country);
  715. sql += ", @address = " + _dao.FilterString(register.Address);
  716. sql += ", @state = " + _dao.FilterString(register.State);
  717. sql += ", @district = " + _dao.FilterString(register.District);
  718. sql += ", @city = " + _dao.FilterString(register.City);
  719. sql += ", @email = " + _dao.FilterString(register.Email);
  720. sql += ", @mobile = " + _dao.FilterString(register.MobileNo);
  721. sql += ", @relation = " + _dao.FilterString(register.Relation);
  722. sql += ", @purpose = " + _dao.FilterString(register.TransferReason);
  723. sql += ", @idType = " + _dao.FilterString(register.IdType);
  724. sql += ", @idNumber = " + _dao.FilterString(register.IdNumber);
  725. Log.DebugFormat("SaveReceiver | SQL : {0}", sql);
  726. var dt = _dao.ExecuteDataRow(sql);
  727. if (dt == null)
  728. {
  729. return null;
  730. }
  731. if (!Convert.ToString(dt["errorCode"]).Equals("0"))
  732. {
  733. receiver = new Receivers { ErrorCode = "1", Msg = Convert.ToString(dt["msg"]) };
  734. return receiver;
  735. }
  736. var fileInBytes = Encoding.UTF8.GetBytes(dt["dpUrl"].ToString());
  737. var userIdInBytes = Encoding.UTF8.GetBytes(dt["userId"].ToString());
  738. receiver = new Receivers()
  739. {
  740. ErrorCode = "0",
  741. recipientId = dt["recipientId"].ToString(),
  742. firstName = dt["firstname"].ToString(),
  743. middleName = dt["middlename"].ToString(),
  744. lastName = dt["lastname"].ToString(),
  745. city = dt["city"].ToString(),
  746. state = dt["state"].ToString(),
  747. stateId = dt["stateId"].ToString(),
  748. district = dt["district"].ToString(),
  749. districtId = dt["districtId"].ToString(),
  750. address = dt["address"].ToString(),
  751. country = dt["country"].ToString(),
  752. countryId = dt["countryId"].ToString(),
  753. relation = dt["relation"].ToString(),
  754. relationId = dt["relationId"].ToString(),
  755. mobileNumber = dt["mobile"].ToString(),
  756. email = dt["email"].ToString(),
  757. reason = dt["transferReason"].ToString(),
  758. reasonId = dt["reasonId"].ToString(),
  759. dpUrl = ApplicationConfig.GetRootURL() + "handler/docs.ashx?img=" + Convert.ToBase64String(fileInBytes) + "&userId=" + Convert.ToBase64String(userIdInBytes),
  760. userId = dt["userId"].ToString(),
  761. countryCode = dt["countryCode"].ToString()
  762. };
  763. return receiver;
  764. }
  765. public JsonRxResponse RemoveReceiver(string userId, string receiverId)
  766. {
  767. var lang = Convert.ToString(CallContext.GetData(Constants.Language));
  768. var sql = "EXEC mobile_proc_receiverSetup @flag='d' ";
  769. sql += ", @userId = " + _dao.FilterString(userId);
  770. sql += ", @recipientId = " + _dao.FilterString(receiverId);
  771. Log.DebugFormat("RemoveReceiver | SQL : {0}", sql);
  772. var res = _dao.ParseDbResult(sql);
  773. //return new JsonRxResponse { ErrorCode = res.ResponseCode, Msg = res.Msg, Id = receiverId };
  774. var map = Utilities.GetLanguageMapping(RESPONSE_MSG.REMOVE_RECEIVER_SUCCESS.ToString(), lang);
  775. return new JsonRxResponse { ErrorCode = res.ResponseCode, Msg = map.Message };
  776. }
  777. public KycStaticData LoadKycStaticData(string type)
  778. {
  779. KycStaticData kycData = new KycStaticData();
  780. var sql = "EXEC proc_mobile_StaticData @flag=" + _dao.FilterString(type);
  781. Log.DebugFormat("LoadKycStaticData | SQL : {0}", sql);
  782. var ds = _dao.ExecuteDataset(sql);
  783. if (ds == null)
  784. {
  785. return null;
  786. }
  787. if (ds.Tables.Count == 6)
  788. {
  789. var nativeCountry = ds.Tables[0];
  790. var ncr = from nc in nativeCountry.AsEnumerable()
  791. select new NativeCountry
  792. {
  793. id = nc.Field<int>("id").ToString(),
  794. text = nc.Field<string>("text"),
  795. code = nc.Field<string>("Code")
  796. };
  797. kycData.NativeCountry = ncr.ToList();
  798. var city = ds.Tables[1];
  799. var cit = from pr in city.AsEnumerable()
  800. select new City
  801. {
  802. id = pr.Field<string>("id").ToString(),
  803. text = pr.Field<string>("text")
  804. };
  805. kycData.City = cit.ToList();
  806. var occupation = ds.Tables[2];
  807. var occr = from occ in occupation.AsEnumerable()
  808. select new Occuption
  809. {
  810. id = occ.Field<int>("id").ToString(),
  811. text = occ.Field<string>("text")
  812. };
  813. kycData.Occupation = occr.ToList();
  814. var bank = ds.Tables[3];
  815. var bkr = from bk in bank.AsEnumerable()
  816. select new PrimaryBank
  817. {
  818. id = bk.Field<int>("id").ToString(),
  819. text = bk.Field<string>("text")
  820. };
  821. kycData.Bank = bkr.ToList();
  822. var idType = ds.Tables[4];
  823. var vitr = from vit in idType.AsEnumerable()
  824. select new IdType
  825. {
  826. id = vit.Field<int>("id").ToString(),
  827. text = vit.Field<string>("text")
  828. };
  829. kycData.IdType = vitr.ToList();
  830. var sourceOfFund = ds.Tables[5];
  831. var src = from srcc in sourceOfFund.AsEnumerable()
  832. select new SourceOfFund
  833. {
  834. id = srcc.Field<int>("id").ToString(),
  835. text = srcc.Field<string>("text")
  836. };
  837. kycData.SourceOfFund = src.ToList();
  838. return kycData;
  839. }
  840. return null;
  841. }
  842. public TransactionResponse GenerateReceipt(string tranId, string notice)
  843. {
  844. var lang = Convert.ToString(CallContext.GetData(Constants.Language));
  845. JsonRxResponse res = new JsonRxResponse();
  846. var sql = "EXEC proc_online_sendIntlReceipt @flag = 'receipt'";
  847. sql += ", @tranId = " + _dao.FilterString(tranId);
  848. // sql += ", @notice = " + _dao.FilterString(notice);
  849. Log.DebugFormat("GenerateReceipt | SQL:{0}", sql);
  850. DataSet ds = _dao.ExecuteDataset(sql);
  851. DataRow eRow = ds.Tables[0].Rows[0];
  852. if (eRow["ErrorCode"].ToString() != "0")
  853. {
  854. return null;
  855. }
  856. else if (ds.Tables.Count >= 1 && ds.Tables[0].Rows.Count > 0)
  857. {
  858. DataRow sRow = ds.Tables[1].Rows[0];
  859. if (notice == "Y")
  860. {
  861. string sql1 = $@"SELECT isRead FROM pushNotificationHistroy WHERE sentId = {tranId}";
  862. var dr = _dao.ExecuteDataRow(sql1);
  863. if (dr["isRead"].ToString() == "0")
  864. {
  865. sql = $@"UPDATE pushNotificationHistroy SET isRead = 1 WHERE sentId={tranId}";
  866. _dao.ExecuteDataset(sql);
  867. }
  868. }
  869. TransactionResponse transactionResponse = new TransactionResponse()
  870. {
  871. //payMode = sRow["PaymentMode"].ToString(),
  872. // Main Information (top of page)
  873. controlNo = sRow["controlNo"].ToString(),
  874. trnsDate = Convert.ToString(sRow["createdDate"]),
  875. trnId = sRow["tranId"].ToString(),
  876. //Load Receiver Information
  877. rFirstName = sRow["rFirstName"].ToString(),
  878. rMiddleName = sRow["rMiddleName"].ToString(),
  879. rLastName = sRow["rLastName"].ToString(),
  880. rAddress = sRow["rAddress"].ToString(),
  881. rCountryName = sRow["rCountryName"].ToString(),
  882. rContactNo = sRow["rContactNo"].ToString(),
  883. rCity = sRow["rCity"].ToString(),
  884. rEmail = sRow["rEmail"].ToString(),
  885. relWithSender = sRow["relWithSender"].ToString(),
  886. rState = sRow["rState"].ToString(),
  887. // Transaction Details
  888. payoutCountry = sRow["pCountry"].ToString(),
  889. trnDate = Convert.ToString(sRow["createdDate"]),
  890. pAmount = GetStatic.ShowDecimal(sRow["pAmt"].ToString()) + " " + sRow["payoutCurr"].ToString(),
  891. payOutMode = sRow["PaymentMode"].ToString(),
  892. accountNo = sRow["accountNo"].ToString(),
  893. payoutBankBranch = sRow["pBranchName"].ToString(),
  894. pAgentBank = sRow["pAgent"].ToString() ?? "[ANY WHERE]",
  895. collAmount = GetStatic.ShowDecimal1(sRow["cAmt"].ToString()) + " " + sRow["collCurr"].ToString(),
  896. exRate = sRow["exRate"].ToString(),
  897. serviceCharge = GetStatic.ShowDecimal1(sRow["serviceCharge"].ToString()) + " " + sRow["collCurr"].ToString(),
  898. payOutAmount = GetStatic.ShowDecimal(sRow["pAmt"].ToString()) + " " + sRow["payoutCurr"].ToString(),
  899. couponName = sRow["couponName"].ToString(),
  900. discountType = sRow["discountType"].ToString(),
  901. discountValue = sRow["discountValue"].ToString(),
  902. discountPercent = sRow["discountPercent"].ToString(),
  903. tranStatus = sRow["tranStatus"].ToString(),
  904. rewardPoints = GetStatic.ShowDecimal1(sRow["rewardPoints"].ToString()),
  905. ColorIcon = GetColor(sRow["PayStatus"].ToString()),
  906. SenderFullName = sRow["senderName"].ToString(),
  907. PaymentDetails = new PaymentDetails()
  908. {
  909. AccountName = "IME LONDON",
  910. AccountNo = "00000151",
  911. BankName = "Clear bank",
  912. Instruction = "Payment Reference Should be your name . Should you require any assitance, IME team is happy to help. You can track from Home ",
  913. TotalToPay = GetStatic.ShowDecimal(sRow["cAmt"].ToString()) + " " + sRow["collCurr"].ToString(),
  914. Reference = sRow["senderName"].ToString(),
  915. SortCode = "04-06-93"
  916. }
  917. };
  918. double discountval = 0, discountpercent = 0;
  919. if (double.TryParse(transactionResponse.discountValue, out discountval))
  920. {
  921. transactionResponse.discountValue = Math.Round(discountval, 0).ToString();
  922. }
  923. if (double.TryParse(transactionResponse.discountPercent, out discountpercent))
  924. {
  925. transactionResponse.discountPercent = Math.Round(discountpercent, 0).ToString();
  926. }
  927. res.ErrorCode = "0";
  928. res.Msg = "SUCCESS";
  929. var map = Utilities.GetLanguageMapping(RESPONSE_MSG.GENERATE_RECEIPT_SUCCESS.ToString(), lang);
  930. return transactionResponse;
  931. }
  932. return null;
  933. }
  934. private string GetColor(string status)
  935. {
  936. if (status.Equals("AWAITING PAYMENT") || status.Equals("PENDING"))
  937. {
  938. return "Blue";
  939. }
  940. else if (status.Equals("PROCESSING"))
  941. {
  942. return "Brown";
  943. }
  944. else if (status.Equals("PAID"))
  945. {
  946. return "Green";
  947. }
  948. else if (status.Equals("CANCELLED"))
  949. {
  950. return "Red";
  951. }
  952. else
  953. return "Blue";
  954. }
  955. public JsonRxResponse GetNotificationList(string customerId)
  956. {
  957. var lang = Convert.ToString(CallContext.GetData(Constants.Language));
  958. JsonRxResponse res = new JsonRxResponse();
  959. var sql = "EXEC proc_getNotifyInfo @flag='notification'";
  960. sql += ", @customerId = " + _dao.FilterString(customerId);
  961. DataTable dt = _dao.ExecuteDataTable(sql);
  962. if (dt == null)
  963. {
  964. res.ErrorCode = "0";
  965. res.Msg = "SUCCESS";
  966. res.Data = null;
  967. }
  968. List<GetNotifiCationListInfo> getNotifiCationListInfos = new List<GetNotifiCationListInfo>();
  969. foreach (DataRow dr in dt.Rows)
  970. {
  971. GetNotifiCationListInfo getNotifiCationListInfo = new GetNotifiCationListInfo();
  972. {
  973. getNotifiCationListInfo.rowId = dr["rowId"].ToString();
  974. getNotifiCationListInfo.customerId = dr["customerId"].ToString();
  975. getNotifiCationListInfo.title = dr["title"].ToString();
  976. getNotifiCationListInfo.body = dr["body"].ToString();
  977. getNotifiCationListInfo.createDate = dr["createDate"].ToString();
  978. getNotifiCationListInfo.category = dr["category"].ToString();
  979. getNotifiCationListInfo.url = dr["url"].ToString();
  980. getNotifiCationListInfo.isClickable = dr["isClickable"].ToString();
  981. getNotifiCationListInfo.isRead = dr["isRead"].ToString();
  982. getNotifiCationListInfo.type = dr["type"].ToString();
  983. }
  984. getNotifiCationListInfos.Add(getNotifiCationListInfo);
  985. }
  986. var map = Utilities.GetLanguageMapping(RESPONSE_MSG.GET_NOTIFY_DETAIL_INFO_SUCCESS.ToString(), lang);
  987. res.ErrorCode = "0";
  988. res.Msg = map.Message;
  989. res.Data = getNotifiCationListInfos.ToArray();
  990. return new JsonRxResponse { ErrorCode = res.ErrorCode, Msg = map.Message, Data = res.Data };
  991. }
  992. public JsonRxResponse UpdateNotification(string rowId)
  993. {
  994. var lang = Convert.ToString(CallContext.GetData(Constants.Language));
  995. JsonRxResponse res = new JsonRxResponse();
  996. var sql = "EXEC proc_getNotifyInfo @flag='notification-detail'";
  997. sql += ", @rowId = " + _dao.FilterString(rowId);
  998. //string sql = $@"SELECT customerId, title ,createDate, category, link, isRead , FROM pushNotificationHistroy WHERE type='0' AND rowId = {rowId}";
  999. var dr = _dao.ExecuteDataRow(sql);
  1000. if (dr == null)
  1001. {
  1002. res.ErrorCode = "0";
  1003. res.Msg = "SUCCESS";
  1004. res.Data = null;
  1005. }
  1006. GetNotifiCationListInfo getNotifiCationListInfo = new GetNotifiCationListInfo();
  1007. getNotifiCationListInfo.rowId = dr["rowId"].ToString();
  1008. getNotifiCationListInfo.customerId = dr["customerId"].ToString();
  1009. getNotifiCationListInfo.title = dr["title"].ToString();
  1010. getNotifiCationListInfo.body = dr["body"].ToString();
  1011. getNotifiCationListInfo.createDate = dr["createDate"].ToString();
  1012. getNotifiCationListInfo.isRead = dr["isRead"].ToString();
  1013. getNotifiCationListInfo.category = dr["category"].ToString();
  1014. getNotifiCationListInfo.url = dr["url"].ToString();
  1015. //if (dr["isRead"].ToString() == "0")
  1016. //{
  1017. // sql = $@"UPDATE pushNotificationHistroy SET isRead = 1 WHERE rowId={rowId}";
  1018. // _dao.ExecuteDataset(sql);
  1019. //}
  1020. var map = Utilities.GetLanguageMapping(RESPONSE_MSG.GET_NOTIFY_DETAIL_INFO_SUCCESS.ToString(), lang);
  1021. res.ErrorCode = "0";
  1022. res.Msg = map.Message;
  1023. res.Data = getNotifiCationListInfo;
  1024. return new JsonRxResponse { ErrorCode = res.ErrorCode, Msg = map.Message, Data = res.Data };
  1025. }
  1026. public List<TranHistoryResponse> GetTransactionHistory(DateFilterParams search, string userId)
  1027. {
  1028. List<TranHistoryResponse> liTranHistoryResponse = null;
  1029. var sql = "Exec mobile_proc_TranHistory @flag='tran-history'";
  1030. sql += ", @userId=" + _dao.FilterString(userId);
  1031. sql += ", @fromDate=" + _dao.FilterString(search.FromDate);
  1032. sql += ", @toDate=" + _dao.FilterString(search.ToDate);
  1033. Log.DebugFormat("GetTransactionHistory | SQL : {0}", sql);
  1034. var dt = _dao.ExecuteDataTable(sql);
  1035. if (dt == null)
  1036. {
  1037. return null;
  1038. }
  1039. //else if (dt.Rows.Count < 1)
  1040. //{
  1041. // return null;
  1042. //}
  1043. liTranHistoryResponse = new List<TranHistoryResponse>();
  1044. foreach (DataRow dr in dt.Rows)
  1045. {
  1046. TranHistoryResponse tranHistoryResponse = new TranHistoryResponse()
  1047. {
  1048. User = Convert.ToString(dr["userId"]),
  1049. TranId = Convert.ToString(dr["tranId"]),
  1050. ControlNo = Convert.ToString(dr["controlNo"]),
  1051. CollAmt = Convert.ToString(dr["collAmount"]),
  1052. PayoutAmt = Utilities.ShowDecimal(Convert.ToString(dr["payoutAmt"])),
  1053. PCurr = Convert.ToString(dr["pCurr"]),
  1054. CollCurr = Convert.ToString(dr["collCurr"]),
  1055. PayStatus = Convert.ToString(dr["payStatus"]),
  1056. PayoutMode = Convert.ToString(dr["payoutMode"]),
  1057. SendDate = Convert.ToString(dr["sendDate"]),
  1058. PaidDate = Convert.ToString(dr["paidDate"]),
  1059. DisplayActions = dr["DisplayActions"].ToString()
  1060. // PayoutAgent = Convert.ToString(dr["PayoutAgent"]),
  1061. };
  1062. liTranHistoryResponse.Add(tranHistoryResponse);
  1063. }
  1064. return liTranHistoryResponse;
  1065. }
  1066. //added mobileNo and nativeCountry fields
  1067. public JsonRxResponse RegisterCustomer(CustomerRegisterParameters registerParam)
  1068. {
  1069. var sql = "EXEC JsonRx_Proc_UserRegistration @flag='sign-up' ";
  1070. sql += ", @username = " + _dao.FilterString(registerParam.Username);
  1071. sql += ", @password = " + _dao.FilterString(registerParam.Password);
  1072. sql += ", @mobile = " + _dao.FilterString(registerParam.MobileNumber);
  1073. sql += ", @nativeCountry = " + _dao.FilterString(registerParam.NativeCountry);
  1074. sql += ", @clientId = " + _dao.FilterString(registerParam.ClientId);
  1075. sql += ", @imei = " + _dao.FilterString(registerParam.uuid);
  1076. sql += ", @appVersion = " + _dao.FilterString(registerParam.AppVersion);
  1077. sql += ", @phoneBrand = " + _dao.FilterString(registerParam.phoneBrand);
  1078. sql += ", @phoneOs = " + _dao.FilterString(registerParam.phoneOs);
  1079. sql += ", @osVersion = " + _dao.FilterString(registerParam.osVersion);
  1080. sql += ", @deviceId = " + _dao.FilterString(registerParam.fcmId);
  1081. sql += ", @dob = " + _dao.FilterString(registerParam.Dob);
  1082. Log.DebugFormat("RegisterCustomer | SQL : {0}", sql);
  1083. var res = _dao.ParseDbResult(sql);
  1084. return new JsonRxResponse { ErrorCode = res.ResponseCode, Msg = res.Msg, Id = registerParam.Username };
  1085. }
  1086. //added mobileNo and nativeCountry fields
  1087. public JsonRxResponse OldUserAccessRequest(OldUserAccessRequestModel oldUserAccessRequest)
  1088. {
  1089. var lang = Convert.ToString(CallContext.GetData(Constants.Language));
  1090. var sql = "EXEC JsonRx_Proc_UserRegistration_V2 @flag='sign-up-pre-old-cust' ";
  1091. sql += ", @mobile = " + _dao.FilterString(oldUserAccessRequest.MobileNumber);
  1092. sql += ", @idNumber = " + _dao.FilterString(oldUserAccessRequest.IdNumber);
  1093. sql += ", @dob = " + _dao.FilterString(oldUserAccessRequest.Dob);
  1094. Log.DebugFormat("OldUserAccessRequest | SQL : {0}", sql);
  1095. var res = _dao.ParseDbResult(sql);
  1096. string enumString = string.Empty;
  1097. if (res.ResponseCode.Equals("0"))
  1098. {
  1099. enumString = RESPONSE_MSG.OLD_USER_ACCESS_REQUEST_SUCCESS.ToString();
  1100. }
  1101. else if (res.ResponseCode.Equals("1"))
  1102. {
  1103. enumString = RESPONSE_MSG.OLD_USER_ACCESS_REQUEST_FAIL_1.ToString();
  1104. }
  1105. else if (res.ResponseCode.Equals("2"))
  1106. {
  1107. enumString = RESPONSE_MSG.OLD_USER_ACCESS_REQUEST_FAIL_2.ToString();
  1108. }
  1109. else if (res.ResponseCode.Equals("3"))
  1110. {
  1111. enumString = RESPONSE_MSG.OLD_USER_ACCESS_REQUEST_FAIL_3.ToString();
  1112. }
  1113. var map = Utilities.GetLanguageMapping(enumString, lang);
  1114. return new JsonRxResponse { ErrorCode = res.ResponseCode.Equals("0") ? "0" : "1", Msg = map.Message, Id = res.Id, Extra = res.Extra };
  1115. //return new JsonRxResponse { ErrorCode = res.ResponseCode, Msg = res.Msg, Id = res.Id, Extra = res.Extra };
  1116. }
  1117. public JsonRxResponse OldUserRegister(OldUserRegisterModel oldUserRegister)
  1118. {
  1119. var lang = Convert.ToString(CallContext.GetData(Constants.Language));
  1120. var sql = "EXEC JsonRx_Proc_UserRegistration_V2 @flag='sign-up-v2-old-cust' ";
  1121. sql += ", @username = " + _dao.FilterString(oldUserRegister.UserId);
  1122. sql += ", @password = " + _dao.FilterString(oldUserRegister.Password);
  1123. sql += ", @referenceId = " + _dao.FilterString(oldUserRegister.ReferenceId);
  1124. sql += ", @txnPin = " + _dao.FilterString(oldUserRegister.TxnPin);
  1125. sql += ", @clientId = " + _dao.FilterString(oldUserRegister.ClientId);
  1126. sql += ", @uuid = " + _dao.FilterString(oldUserRegister.uuid);
  1127. sql += ", @appVersion = " + _dao.FilterString(oldUserRegister.AppVersion);
  1128. sql += ", @phoneBrand = " + _dao.FilterString(oldUserRegister.phoneBrand);
  1129. sql += ", @phoneOs = " + _dao.FilterString(oldUserRegister.phoneOs);
  1130. sql += ", @fcmId = " + _dao.FilterString(oldUserRegister.fcmId);
  1131. sql += ", @osVersion = " + _dao.FilterString(oldUserRegister.osVersion);
  1132. sql += ", @referralCode = " + _dao.FilterString(oldUserRegister.referralcode);
  1133. Log.DebugFormat("OldUserRegister | SQL : {0}", sql);
  1134. var res = _dao.ParseDbResult(sql);
  1135. string enumString = string.Empty;
  1136. if (res.ResponseCode.Equals("0"))
  1137. {
  1138. enumString = RESPONSE_MSG.OLD_USER_REGISTER_SUCCESS.ToString();
  1139. }
  1140. else if (res.ResponseCode.Equals("1"))
  1141. {
  1142. enumString = RESPONSE_MSG.OLD_USER_REGISTER_FAIL_1.ToString();
  1143. }
  1144. else if (res.ResponseCode.Equals("2"))
  1145. {
  1146. enumString = RESPONSE_MSG.OLD_USER_REGISTER_FAIL_2.ToString();
  1147. }
  1148. else if (res.ResponseCode.Equals("3"))
  1149. {
  1150. enumString = RESPONSE_MSG.OLD_USER_REGISTER_FAIL_3.ToString();
  1151. }
  1152. else if (res.ResponseCode.Equals("4"))
  1153. {
  1154. enumString = RESPONSE_MSG.OLD_USER_REGISTER_FAIL_4.ToString();
  1155. }
  1156. else if (res.ResponseCode.Equals("5"))
  1157. {
  1158. enumString = RESPONSE_MSG.OLD_USER_REGISTER_FAIL_5.ToString();
  1159. }
  1160. else if (res.ResponseCode.Equals("6"))
  1161. {
  1162. enumString = RESPONSE_MSG.OLD_USER_REGISTER_FAIL_6.ToString();
  1163. }
  1164. else if (res.ResponseCode.Equals("7"))
  1165. {
  1166. enumString = RESPONSE_MSG.OLD_USER_REGISTER_FAIL_7.ToString();
  1167. }
  1168. var map = Utilities.GetLanguageMapping(enumString, lang);
  1169. return new JsonRxResponse { ErrorCode = res.ResponseCode.Equals("0") ? "0" : "1", Msg = map.Message, Id = res.Id, Extra = res.Extra };
  1170. //return new JsonRxResponse { ErrorCode = res.ResponseCode, Msg = res.Msg, Id = res.Id, Extra = res.Extra };
  1171. }
  1172. public JsonRxResponse NewUserRegister(NewUserRegisterModel newUserRegister)
  1173. {
  1174. var lang = Convert.ToString(CallContext.GetData(Constants.Language));
  1175. var sql = "EXEC JsonRx_Proc_UserRegistration_V2 @flag='sign-up-v2-new-cust' ";
  1176. sql += ", @idNumber = " + _dao.FilterString("");
  1177. sql += ", @nativeCountry = " + _dao.FilterString(newUserRegister.Nationality);
  1178. sql += ", @referralCode = " + _dao.FilterString(newUserRegister.ReferralCode);
  1179. sql += ", @username = " + _dao.FilterString(newUserRegister.UserId);
  1180. sql += ", @password = " + _dao.FilterString(newUserRegister.Password);
  1181. sql += ", @clientId = " + _dao.FilterString(newUserRegister.ClientId);
  1182. sql += ", @uuid = " + _dao.FilterString(newUserRegister.uuid);
  1183. sql += ", @appVersion = " + _dao.FilterString(newUserRegister.AppVersion);
  1184. sql += ", @phoneBrand = " + _dao.FilterString(newUserRegister.phoneBrand);
  1185. sql += ", @phoneOs = " + _dao.FilterString(newUserRegister.phoneOs);
  1186. sql += ", @fcmId = " + _dao.FilterString(newUserRegister.fcmId);
  1187. sql += ", @osVersion = " + _dao.FilterString(newUserRegister.osVersion);
  1188. sql += ", @fullName = " + _dao.FilterString(newUserRegister.FullName);
  1189. sql += ", @dob = " + _dao.FilterString(newUserRegister.DOB);
  1190. sql += ", @mobile = " + _dao.FilterString(newUserRegister.MobileNumber);
  1191. sql += ", @postalCode = " + _dao.FilterString(newUserRegister.PostalCode);
  1192. sql += ", @address1 = " + _dao.FilterString(newUserRegister.Address1);
  1193. sql += ", @address2 = " + _dao.FilterString(newUserRegister.Address2);
  1194. sql += ", @city = " + _dao.FilterString(newUserRegister.City);
  1195. sql += ", @gender = " + _dao.FilterString(newUserRegister.Gender);
  1196. if (!string.IsNullOrEmpty(newUserRegister.FullName))
  1197. {
  1198. var str = newUserRegister.FullName.Trim().Split(' ');
  1199. if (str.Length.Equals(2))
  1200. {
  1201. sql += ", @FirstName = " + _dao.FilterString(str[0]);
  1202. sql += ", @LastName = " + _dao.FilterString(str[1]);
  1203. }
  1204. else if (str.Length > 2)
  1205. {
  1206. sql += ", @FirstName = " + _dao.FilterString(str[0]);
  1207. sql += ", @MiddleName = " + _dao.FilterString(str[1]);
  1208. var ls = "";
  1209. for (int i = 2; i < str.Length; i++)
  1210. {
  1211. ls = (ls + str[i] + " ").Trim();
  1212. }
  1213. sql += ", @LastName = " + _dao.FilterString(ls);
  1214. }
  1215. else
  1216. {
  1217. sql += ", @FirstName = " + _dao.FilterString(newUserRegister.FullName);
  1218. }
  1219. }
  1220. Log.DebugFormat("NewUserRegister | SQL : {0}", sql);
  1221. var res = _dao.ParseDbResult(sql);
  1222. string enumString = string.Empty;
  1223. if (res.ResponseCode.Equals("0"))
  1224. {
  1225. enumString = RESPONSE_MSG.NEW_USER_REGISTER_SUCCESS.ToString();
  1226. }
  1227. else if (res.ResponseCode.Equals("1"))
  1228. {
  1229. enumString = RESPONSE_MSG.NEW_USER_REGISTER_FAIL_1.ToString();
  1230. }
  1231. else if (res.ResponseCode.Equals("2"))
  1232. {
  1233. enumString = RESPONSE_MSG.NEW_USER_REGISTER_FAIL_2.ToString();
  1234. }
  1235. else if (res.ResponseCode.Equals("3"))
  1236. {
  1237. enumString = RESPONSE_MSG.NEW_USER_REGISTER_FAIL_3.ToString();
  1238. }
  1239. else if (res.ResponseCode.Equals("8"))
  1240. {
  1241. enumString = RESPONSE_MSG.NEW_USER_REGISTER_FAIL_8.ToString();
  1242. }
  1243. var map = Utilities.GetLanguageMapping(enumString, lang);
  1244. return new JsonRxResponse { ErrorCode = res.ResponseCode.Equals("0") ? "0" : "1", Msg = map.Message, Id = res.Id, Extra = res.Extra };
  1245. //return new JsonRxResponse { ErrorCode = res.ResponseCode, Msg = res.Msg, Id = res.Id, Extra = res.Extra };
  1246. }
  1247. public UserDetails GetUserDetails(string email)
  1248. {
  1249. var sql = "EXEC GetUserInfo @flag='basic-reg' ";
  1250. sql += ", @emailId = " + _dao.FilterString(email);
  1251. var row = _dao.ExecuteDataRow(sql);
  1252. UserDetails userDetails = new UserDetails();
  1253. if (row != null)
  1254. {
  1255. userDetails.FullName = row["fullName"].ToString();
  1256. userDetails.CustomerId = row["customerid"].ToString();
  1257. userDetails.MembershipId = row["membershipid"].ToString();
  1258. userDetails.FirstName = row["Firstname"].ToString();
  1259. userDetails.Mobile = row["mobile"].ToString();
  1260. userDetails.MiddleName = row["middleName"].ToString();
  1261. userDetails.LastName = row["Lastname1"].ToString();
  1262. userDetails.Email = row["email"].ToString();
  1263. userDetails.Address = row["address"].ToString();
  1264. userDetails.RegisteredDate = row["createdDate"].ToString();
  1265. userDetails.TotalPoints = row["TotalPoints"].ToString();
  1266. userDetails.RegPoints = row["RegPoints"].ToString();
  1267. userDetails.TranPoints = row["TranPoints"].ToString();
  1268. }
  1269. return userDetails;
  1270. }
  1271. public JsonRxResponse CustomerInfoAgree(String username, string flag = "agree")
  1272. {
  1273. var lang = Convert.ToString(CallContext.GetData(Constants.Language));
  1274. JsonRxResponse jsonRx = new JsonRxResponse();
  1275. var sql = "EXEC JsonRx_Proc_UserRegistration @flag='" + flag + "' ";
  1276. sql += ", @username = " + _dao.FilterString(username);
  1277. Log.DebugFormat("CustomerInfoAgree | SQL : {0}", sql);
  1278. var res = _dao.ParseDbResult(sql);
  1279. string enumString = string.Empty;
  1280. if (res.ResponseCode.Equals("0"))
  1281. {
  1282. enumString = RESPONSE_MSG.REGISTER_CUSTOMER_SUCCESS.ToString();
  1283. }
  1284. else if (res.ResponseCode.Equals("1"))
  1285. {
  1286. enumString = RESPONSE_MSG.REGISTER_CUSTOMER_FAIL.ToString();
  1287. }
  1288. var map = Utilities.GetLanguageMapping(enumString, lang);
  1289. return new JsonRxResponse { ErrorCode = res.ResponseCode.Equals("0") ? "0" : "1", Msg = res.Msg, Id = username, Extra = res.Extra, Extra2 = res.Extra2, Extra3 = res.Extra3 };
  1290. //return new JsonRxResponse { ErrorCode = res.ResponseCode, Msg = res.Msg };
  1291. //return new JsonRxResponse { ErrorCode = res.ResponseCode, Msg = res.Msg, Id = username };
  1292. }
  1293. public JsonRxResponse CheckInfoAgree(String userName)
  1294. {
  1295. JsonRxResponse jsonRx = new JsonRxResponse();
  1296. var sql = "EXEC mobile_proc_userLogin @flag='check-agree' ";
  1297. sql += ", @username = " + _dao.FilterString(userName);
  1298. Log.Debug("CheckInfoAgree | SQL : " + sql);
  1299. var res = _dao.ExecuteDataset(sql);
  1300. try
  1301. {
  1302. List<ResponsePdfDetail> pdfDetails = new List<ResponsePdfDetail>();
  1303. if (res.Tables[0].Rows.Count == 0)
  1304. {
  1305. Log.DebugFormat("pdf count is 0");
  1306. jsonRx.ErrorCode = "0";
  1307. jsonRx.Msg = "Don't have pdf List";
  1308. jsonRx.Data = new System.Collections.ArrayList();
  1309. return jsonRx;
  1310. }
  1311. var data = res.Tables[0].Rows[0];
  1312. if (data["ErrorCode"].ToString() != "0")
  1313. {
  1314. jsonRx.SetResponse(data["ErrorCode"].ToString(), data["MSG"].ToString(), data["Id"].ToString());
  1315. return jsonRx;
  1316. }
  1317. string currentpath = AppDomain.CurrentDomain.BaseDirectory;
  1318. //var url = ApplicationConfig.ReadWebConfig("rootUrl", "");
  1319. foreach (DataRow row in res.Tables[0].Rows)
  1320. {
  1321. string imgtemppath = null, resultimgpath = null;
  1322. string ipath = row["AgreePdfPath"].ToString();
  1323. if (String.IsNullOrEmpty(ipath) == false)
  1324. {
  1325. imgtemppath = ipath.Replace(currentpath, "");
  1326. resultimgpath = imgtemppath.Replace("\\", "/");
  1327. }
  1328. pdfDetails.Add(new ResponsePdfDetail
  1329. {
  1330. pdfNo = row["rowId"].ToString(),
  1331. pdfName = row["PdfName"].ToString(),
  1332. pdfPath = resultimgpath
  1333. });
  1334. }
  1335. jsonRx.Id = userName;
  1336. jsonRx.ErrorCode = "0";
  1337. jsonRx.Msg = "Get PDF List Success About Agree infomation";
  1338. jsonRx.Data = pdfDetails;
  1339. return jsonRx;
  1340. }
  1341. catch (Exception ex)
  1342. {
  1343. Log.DebugFormat($"Exception : {ex.ToString()}");
  1344. jsonRx.ErrorCode = "1";
  1345. jsonRx.Msg = "Get PDF List Failed";
  1346. jsonRx.Data = ex.ToString();
  1347. return jsonRx;
  1348. }
  1349. }
  1350. public JsonRxResponse ResetPassword(PasswordReset pwdReset)
  1351. {
  1352. var lang = Convert.ToString(CallContext.GetData(Constants.Language));
  1353. var sql = "EXEC JsonRx_Proc_UserRegistration @flag='pwd-reset' ";
  1354. sql += ", @username = " + _dao.FilterString(pwdReset.Username);
  1355. sql += ", @dob = " + _dao.FilterString(pwdReset.Dob);
  1356. sql += ", @randomPassword = " + _dao.FilterString(pwdReset.RandomPassword);
  1357. Log.DebugFormat("ResetPassword |language : {0} | SQL : {1}", lang, sql);
  1358. var res = _dao.ParseDbResult(sql);
  1359. string enumString = string.Empty;
  1360. if (res.ResponseCode.Equals("0"))
  1361. {
  1362. enumString = RESPONSE_MSG.RESET_PASSWORD_SUCCESS.ToString();
  1363. }
  1364. else if (res.ResponseCode.Equals("1"))
  1365. {
  1366. enumString = RESPONSE_MSG.RESET_PASSWORD_FAIL_1.ToString();
  1367. }
  1368. else if (res.ResponseCode.Equals("2"))
  1369. {
  1370. enumString = RESPONSE_MSG.RESET_PASSWORD_FAIL_2.ToString();
  1371. }
  1372. else if (res.ResponseCode.Equals("3"))
  1373. {
  1374. enumString = RESPONSE_MSG.RESET_PASSWORD_FAIL_3.ToString();
  1375. }
  1376. var map = Utilities.GetLanguageMapping(enumString, lang);
  1377. return new JsonRxResponse { ErrorCode = res.ResponseCode.Equals("0") ? "0" : "1", Msg = res.ResponseCode.Equals("3") ? map.Message.Replace("@username", res.Extra) : map.Message, Id = pwdReset.Username, Extra = res.Extra, Extra2 = res.Extra2, Extra3 = res.Extra3 };
  1378. }
  1379. public JsonRxResponse RefreshCustomerInformation(UserModel user)
  1380. {
  1381. var lang = Convert.ToString(CallContext.GetData(Constants.Language));
  1382. JsonRxResponse jsonRx = new JsonRxResponse
  1383. {
  1384. ErrorCode = "1",
  1385. Msg = "Failed"
  1386. };
  1387. var sql = "EXEC mobile_proc_customerMaster @flag='refresh-customer-info'";
  1388. sql += ", @userName = " + _dao.FilterString(user.UserId);
  1389. sql += ",@appVersion = " + _dao.FilterString(user.AppVersion);
  1390. sql += ",@phoneBrand = " + _dao.FilterString(user.phoneBrand);
  1391. sql += ",@phoneOS = " + _dao.FilterString(user.phoneOs);
  1392. sql += ",@fcmId = " + _dao.FilterString(user.fcmId);
  1393. sql += ",@osVersion = " + _dao.FilterString(user.osVersion);
  1394. Log.DebugFormat("RefreshCustomerInformation | Lang {0} | SQL : {1}", lang, sql);
  1395. var dataTable = _dao.ExecuteDataTable(sql);
  1396. if (dataTable != null)
  1397. {
  1398. if (dataTable.Rows[0]["errorCode"].ToString() == "0")
  1399. {
  1400. var ios = ConfigurationManager.AppSettings["IosUpdate"].ToString().Split('-');
  1401. var iosInfo = ConfigurationManager.AppSettings["IosUpdateInfo"].ToString();
  1402. var android = ConfigurationManager.AppSettings["AndroidUpdate"].ToString().Split('-');
  1403. var androidInfo = ConfigurationManager.AppSettings["AndroidUpdateInfo"].ToString();
  1404. IList<AppUpdate> app = new List<AppUpdate>();
  1405. app.Add(new AppUpdate { OS = "IOS", Build = ios[0], Version = ios[1], Critical = ios[2], Info = iosInfo });
  1406. app.Add(new AppUpdate { OS = "ANDROID", Build = android[0], Version = android[1], Critical = android[2], Info = androidInfo });
  1407. var dpStr = Convert.ToString(dataTable.Rows[0]["dpUrl"]);
  1408. var fileInBytes = Encoding.UTF8.GetBytes(Convert.ToString(dataTable.Rows[0]["dpUrl"]));
  1409. var userIdInBytes = Encoding.UTF8.GetBytes(Convert.ToString(dataTable.Rows[0]["userId"]));
  1410. var moduleInBytes = Encoding.UTF8.GetBytes("kyc");
  1411. try
  1412. {
  1413. var custResponse = new LoginResponse
  1414. {
  1415. ErrorCode = Convert.ToString(dataTable.Rows[0]["errorCode"]),
  1416. userId = Convert.ToString(dataTable.Rows[0]["userId"]),
  1417. senderId = Convert.ToString(dataTable.Rows[0]["SenderId"]),
  1418. firstName = Convert.ToString(dataTable.Rows[0]["firstName"]),
  1419. email = Convert.ToString(dataTable.Rows[0]["email"]),
  1420. customerEmail = Convert.ToString(dataTable.Rows[0]["customerEmail"]),
  1421. mobileNumber = Convert.ToString(dataTable.Rows[0]["phone"]),
  1422. dob = Convert.ToString(dataTable.Rows[0]["dob"]),
  1423. rewardPoint = Convert.ToString(dataTable.Rows[0]["rewardPoint"]),
  1424. active = Convert.ToBoolean(dataTable.Rows[0]["active"]),
  1425. kyc = Convert.ToBoolean(dataTable.Rows[0]["kyc"]),
  1426. verified = Convert.ToBoolean(dataTable.Rows[0]["verified"]),
  1427. walletNumber = Convert.ToString(dataTable.Rows[0]["walletNumber"]),
  1428. availableBalance = Convert.ToString(dataTable.Rows[0]["availableBalance"]),
  1429. primaryBankName = Convert.ToString(dataTable.Rows[0]["primaryBankName"]),
  1430. cmRegistrationId = Convert.ToString(dataTable.Rows[0]["cmRegistrationId"]),
  1431. dpUrl = !(string.IsNullOrEmpty(dpStr)) ? ApplicationConfig.GetRootURL() + "handler/docs.ashx?img=" + Convert.ToBase64String(fileInBytes) + "&userId=" + Convert.ToBase64String(userIdInBytes) + "&module=" + Convert.ToBase64String(moduleInBytes) : null,
  1432. country = Convert.ToString(dataTable.Rows[0]["country"]),
  1433. province = Convert.ToString(dataTable.Rows[0]["province"]),
  1434. provinceId = Convert.ToString(dataTable.Rows[0]["provinceId"]),
  1435. isReferred = Convert.ToBoolean(dataTable.Rows[0]["isReferred"]),
  1436. sourceId = Convert.ToString(dataTable.Rows[0]["sourceId"]),
  1437. countryCode = Convert.ToString(dataTable.Rows[0]["countryCode"]),
  1438. yearlyLimit = Convert.ToString(dataTable.Rows[0]["yearlyLimit"]),
  1439. pennyTestStatus = Convert.ToString(dataTable.Rows[0]["PennyTestStatus"]),
  1440. accessTokenRegTime = Convert.ToString(dataTable.Rows[0]["accessTokenRegTime"]),
  1441. accessTokenExpTime = Convert.ToString(dataTable.Rows[0]["accessTokenExpTime"]),
  1442. redirectTo = Convert.ToString(dataTable.Rows[0]["redirectTo"]),
  1443. referralCode = Convert.ToString(dataTable.Rows[0]["referelCode"]),
  1444. agreeYn = Convert.ToString(dataTable.Rows[0]["agreeYn"]),
  1445. isExistingCustomer = Convert.ToBoolean(dataTable.Rows[0]["isExistingCustomer"]),
  1446. hasUpdatedDefaultCredentials = Convert.ToInt16(dataTable.Rows[0]["hasUpdatedDefaultCredentials"]),
  1447. hasVerifiedOTP = Convert.ToBoolean(dataTable.Rows[0]["hasVerifiedOTP"]),
  1448. IsBiometricLogin = Convert.ToBoolean(dataTable.Rows[0]["IsBiometricLogin"]),
  1449. BiometricLoginType = Convert.ToString(dataTable.Rows[0]["BiometricLoginType"]),
  1450. notificationCount = Convert.ToString(dataTable.Rows[0]["notificationCount"]),
  1451. idExpiryDate = Convert.ToString(dataTable.Rows[0]["IDExpiryDate"]),
  1452. IdStatus = Convert.ToString(dataTable.Rows[0]["idStatus"]),
  1453. showInviteCode = Convert.ToString(dataTable.Rows[0]["showInviteCode"]),
  1454. RewardPoints = Convert.ToString(dataTable.Rows[0]["RewardPoints"]),
  1455. ResidenceType = Convert.ToString(dataTable.Rows[0]["ResidenceType"]),
  1456. UseNFC = Convert.ToString(dataTable.Rows[0]["UseNFC"]),
  1457. SelfieDocPath = Convert.ToString(dataTable.Rows[0]["SelfieDoc"]).Replace("////", "/"),
  1458. KycVerified = Convert.ToBoolean(dataTable.Rows[0]["KycVerified"]),
  1459. KycStatus = Convert.ToString(dataTable.Rows[0]["KycStatus"]),
  1460. KycStatusMsg = Convert.ToString(dataTable.Rows[0]["KycStatusMsg"]),
  1461. // IsForcedPwdchange = Convert.ToString(dataTable.Rows[0]["IsForcedPwdChange"]),
  1462. appUpdate = app
  1463. };
  1464. jsonRx.ErrorCode = "0";
  1465. jsonRx.Msg = "success";
  1466. jsonRx.Data = custResponse;
  1467. if (custResponse.availableBalance == "000")
  1468. {
  1469. custResponse.availableBalance = "0";
  1470. }
  1471. }
  1472. catch (Exception ex)
  1473. {
  1474. throw;
  1475. }
  1476. return jsonRx;
  1477. }
  1478. else
  1479. {
  1480. jsonRx.ErrorCode = "999";
  1481. jsonRx.Msg = dataTable.Rows[0]["msg"].ToString();
  1482. jsonRx.Data = null;
  1483. }
  1484. }
  1485. return jsonRx;
  1486. }
  1487. public List<WalletStatementResponse> GetWalletStatement(DateFilterParams search, string userId)
  1488. {
  1489. WalletStatementResponse walletResponse = null;
  1490. List<WalletStatementResponse> lstWalletResponse = new List<WalletStatementResponse>();
  1491. JsonRxResponse jsonRx = new JsonRxResponse();
  1492. var sql = "Exec mobile_proc_TranHistory @flag='tran-history'";
  1493. sql += ", @userId=" + _dao.FilterString(userId);
  1494. sql += ", @fromDate=" + _dao.FilterString(search.FromDate);
  1495. sql += ", @toDate=" + _dao.FilterString(search.ToDate);
  1496. Log.DebugFormat("GetWalletStatement | SQL : {0}", sql);
  1497. var dt = _dao.ExecuteDataTable(sql);
  1498. if (dt == null || dt.Rows.Count == 0)
  1499. {
  1500. return null;
  1501. }
  1502. foreach (DataRow dr in dt.Rows)
  1503. {
  1504. WalletStatementResponse tranHistoryResponse = new WalletStatementResponse()
  1505. {
  1506. TranId = Convert.ToString(dr["tranId"]),
  1507. ControlNo = Convert.ToString(dr["controlNo"]),
  1508. CollAmt = Convert.ToString(dr["collAmount"]),
  1509. PayoutAmt = Utilities.ShowDecimal(Convert.ToString(dr["payoutAmt"])),
  1510. PCurr = Convert.ToString(dr["pCurr"]),
  1511. CollCurr = Convert.ToString(dr["collCurr"]),
  1512. PayStatus = Convert.ToString(dr["payStatus"]),
  1513. PayoutMode = Convert.ToString(dr["payoutMode"]),
  1514. TransactionDate = Convert.ToString(dr["sendDate"]),
  1515. ReceiverName= Convert.ToString(dr["ReceiverName"]),
  1516. PayoutCountry = Convert.ToString(dr["PayoutCountry"]),
  1517. ColorCode = GetColorCode(dr["payStatus"].ToString()),
  1518. TextCode = GetTextCode(dr["payStatus"].ToString()),
  1519. };
  1520. lstWalletResponse.Add(tranHistoryResponse);
  1521. }
  1522. return lstWalletResponse;
  1523. }
  1524. private string GetColorCode(string status)
  1525. {
  1526. if (status.Equals("AWAITING PAYMENT") || status.Equals("PENDING"))
  1527. {
  1528. return "#514e82";
  1529. }
  1530. else if (status.Equals("PROCESSING"))
  1531. {
  1532. return "#AF804F";
  1533. }
  1534. else if (status.Equals("PAID"))
  1535. {
  1536. return "#2ED636";
  1537. }
  1538. else if (status.Equals("CANCELLED"))
  1539. {
  1540. return "#FF0000";
  1541. }
  1542. else
  1543. return "#514e82";
  1544. }
  1545. private string GetTextCode(string status)
  1546. {
  1547. if (status.Equals("AWAITING PAYMENT") || status.Equals("PENDING"))
  1548. {
  1549. return "#FFFFFF";
  1550. }
  1551. else if (status.Equals("PROCESSING"))
  1552. {
  1553. return "#FFFFFF";
  1554. }
  1555. else if (status.Equals("PAID"))
  1556. {
  1557. return "#000000";
  1558. }
  1559. else if (status.Equals("CANCELLED"))
  1560. {
  1561. return "#000000";
  1562. }
  1563. else
  1564. return "#FFFFFF";
  1565. }
  1566. public JsonRxResponse ChangePassword(ChangePassword changePwd)
  1567. {
  1568. var lang = Convert.ToString(CallContext.GetData(Constants.Language));
  1569. var sql = "EXEC mobile_proc_ChangePassword";
  1570. sql += " @username = " + _dao.FilterString(changePwd.UserId);
  1571. sql += ", @oldPassword = " + _dao.FilterString(changePwd.OldPassword);
  1572. sql += ", @newPassword = " + _dao.FilterString(changePwd.NewPassword);
  1573. Log.DebugFormat("ChangePassword | lang | {0} | SQL:{1}", lang, sql);
  1574. var res = _dao.ParseDbResult(sql);
  1575. string enumString = string.Empty;
  1576. if (res.ResponseCode.Equals("0"))
  1577. {
  1578. enumString = RESPONSE_MSG.CHANGE_PASSWORD_SUCCESS.ToString();
  1579. }
  1580. else if (res.ResponseCode.Equals("1"))
  1581. {
  1582. enumString = RESPONSE_MSG.CHANGE_PASSWORD_FAIL_1.ToString();
  1583. }
  1584. else if (res.ResponseCode.Equals("2"))
  1585. {
  1586. enumString = RESPONSE_MSG.CHANGE_PASSWORD_FAIL_2.ToString();
  1587. }
  1588. var map = Utilities.GetLanguageMapping(enumString, lang);
  1589. return new JsonRxResponse { ErrorCode = res.ResponseCode.Equals("0") ? "0" : "1", Msg = map.Message, Data = new MessageResponse() { Message = map.Message } };
  1590. }
  1591. public List<AccountDetails> GetPaymentAccountsByCustomer(string customer)
  1592. {
  1593. var sql = "EXEC KFTC_LOG_CUSTOMER_INFO @flag = 's-send',@customerId =" + _dao.FilterString(customer);
  1594. Log.DebugFormat("GetPaymentAccountsByCustomer | SQL : {0}", sql);
  1595. var dt = _dao.ExecuteDataTable(sql);
  1596. List<AccountDetails> _accountDetails = new List<AccountDetails>();
  1597. try
  1598. {
  1599. if (dt == null || dt.Rows.Count == 0)
  1600. {
  1601. return _accountDetails;
  1602. }
  1603. foreach (DataRow item in dt.Rows)
  1604. {
  1605. var accName = "";
  1606. if (item["isApproved"].ToString() == "N")
  1607. {
  1608. accName = item["walletName"].ToString() + item["autoDebit"].ToString() + " (Unapproved)";
  1609. }
  1610. else
  1611. {
  1612. accName = item["walletName"].ToString() + item["autoDebit"].ToString();
  1613. }
  1614. accName += "(" + item["accountNumMasked"].ToString() + ")";
  1615. AccountDetails _account = new AccountDetails();
  1616. _account.KftcAccountId = item["RowId"].ToString();
  1617. _account.Type = item["type"].ToString();
  1618. _account.WalletName = item["walletName"].ToString();
  1619. _account.BankName = item["walletName"].ToString();
  1620. _account.AccountNumMasked = item["accountNumMasked"].ToString();
  1621. _accountDetails.Add(_account);
  1622. }
  1623. return _accountDetails;
  1624. }
  1625. catch (Exception ex)
  1626. {
  1627. Log.Error("Exception tracked : " + ex.Message, ex);
  1628. return _accountDetails;
  1629. }
  1630. }
  1631. public string GetPayoutPartner(string pCountry, string serviceType)
  1632. {
  1633. string sql = "SELECT TOP 1 AgentId FROM TblPartnerwiseCountry(NOLOCK) WHERE IsActive = 1 ";
  1634. sql += " AND CountryId =" + _dao.FilterString(pCountry);
  1635. sql += " AND ISNULL(PaymentMethod," + serviceType + ")=" + _dao.FilterString(serviceType);
  1636. return _dao.GetSingleResult(sql);
  1637. }
  1638. public JsonRxResponse RegisterCustomer_V3(CustomerRegisterParameters registerModel)
  1639. {
  1640. var sql = "EXEC JsonRx_Proc_UserRegistration @flag='sign-up-V2' ";
  1641. sql += ", @username = " + _dao.FilterString(registerModel.Username);
  1642. sql += ", @password = " + _dao.FilterString(registerModel.Password);
  1643. sql += ", @mobile = " + _dao.FilterString(registerModel.MobileNumber);
  1644. sql += ", @nativeCountry = " + _dao.FilterString(registerModel.NativeCountry);
  1645. sql += ", @clientId = " + _dao.FilterString(registerModel.ClientId);
  1646. sql += ", @imei = " + _dao.FilterString(registerModel.uuid);
  1647. sql += ", @appVersion = " + _dao.FilterString(registerModel.AppVersion);
  1648. sql += ", @phoneBrand = " + _dao.FilterString(registerModel.phoneBrand);
  1649. sql += ", @phoneOs = " + _dao.FilterString(registerModel.phoneOs);
  1650. sql += ", @osVersion = " + _dao.FilterString(registerModel.osVersion);
  1651. sql += ", @deviceId = " + _dao.FilterString(registerModel.fcmId);
  1652. sql += ", @referenceId = " + _dao.FilterString(registerModel.referenceId);
  1653. Log.DebugFormat("RegisterCustomer | SQL : {0}", sql);
  1654. var res = _dao.ExecuteDataset(sql);
  1655. JsonRxResponse jsonRx = new JsonRxResponse();
  1656. try
  1657. {
  1658. List<ResponsePdfDetail> pdfDetails = new List<ResponsePdfDetail>();
  1659. if (res.Tables[0].Rows.Count == 0)
  1660. {
  1661. Log.DebugFormat("pdf count is 0");
  1662. jsonRx.ErrorCode = "0";
  1663. jsonRx.Msg = "Don't have pdf List";
  1664. jsonRx.Data = new System.Collections.ArrayList();
  1665. return jsonRx;
  1666. }
  1667. if (res.Tables[0].Rows[0]["ErrorCode"].ToString() != "0")
  1668. {
  1669. var row = res.Tables[0].Rows[0];
  1670. jsonRx.SetResponse(row["ErrorCode"].ToString(), row["Msg"].ToString(), row["Id"].ToString());
  1671. return jsonRx;
  1672. }
  1673. string currentpath = AppDomain.CurrentDomain.BaseDirectory;
  1674. var url = ApplicationConfig.ReadWebConfig("rootUrl", "");
  1675. foreach (DataRow row in res.Tables[0].Rows)
  1676. {
  1677. string imgtemppath = null, resultimgpath = null;
  1678. string ipath = row["AgreePdfPath"].ToString();
  1679. if (String.IsNullOrEmpty(ipath) == false)
  1680. {
  1681. imgtemppath = ipath.Replace(currentpath, "");
  1682. resultimgpath = imgtemppath.Replace("\\", "/");
  1683. }
  1684. pdfDetails.Add(new ResponsePdfDetail
  1685. {
  1686. pdfNo = row["rowId"].ToString(),
  1687. pdfName = row["PdfName"].ToString(),
  1688. pdfPath = resultimgpath
  1689. });
  1690. }
  1691. jsonRx.Id = registerModel.Username;
  1692. jsonRx.ErrorCode = "0";
  1693. jsonRx.Msg = "Registration completed successfully";
  1694. jsonRx.Data = pdfDetails;
  1695. return jsonRx;
  1696. }
  1697. catch (Exception ex)
  1698. {
  1699. Log.DebugFormat($"Exception : {ex.ToString()}");
  1700. jsonRx.ErrorCode = "1";
  1701. jsonRx.Msg = "Registration Failed";
  1702. jsonRx.Data = ex.ToString();
  1703. return jsonRx;
  1704. }
  1705. }
  1706. public JsonRxResponse RegisterKYC_V3(CustomerKYC kyc)
  1707. {
  1708. //KycResponse kycResponse = null;
  1709. JsonRxResponse jsonRx = new JsonRxResponse();
  1710. var moduleInBytes = Encoding.UTF8.GetBytes(Common.Helper.ConstantValues.ModuleName.kyc);
  1711. var sql = "EXEC mobile_proc_customerMaster @flag='i-V2'";
  1712. sql += ", @username = " + _dao.FilterString(kyc.userId);
  1713. sql += ", @firstName = " + _dao.FilterString(kyc.firstName);
  1714. sql += ", @nickName = " + _dao.FilterString(kyc.nickName);
  1715. sql += ", @email = " + _dao.FilterString(kyc.email);
  1716. sql += ", @gender= " + _dao.FilterString(kyc.gender);
  1717. sql += ", @dateOfBirth = " + _dao.FilterString(kyc.dateOfBirth);
  1718. sql += ", @address = " + _dao.FilterString(kyc.address);
  1719. sql += ", @city = " + _dao.FilterString(kyc.city);
  1720. sql += ", @province = " + _dao.FilterString(kyc.provinceId);
  1721. sql += ", @occupation = " + _dao.FilterString(kyc.occupation);
  1722. sql += ", @primaryBankName = " + _dao.FilterString(kyc.primaryBankName);
  1723. sql += ", @primaryAccountNumber = " + _dao.FilterString(kyc.primaryAccountNumber);
  1724. sql += ", @verificationIdType = " + _dao.FilterString(kyc.verificationIdType);
  1725. sql += ", @verificationIdNumber = " + _dao.FilterString(kyc.verificationIdNumber);
  1726. sql += ", @issueDate = " + _dao.FilterString(kyc.issueDate);
  1727. sql += ", @expiryDate = " + _dao.FilterString(kyc.expiryDate);
  1728. sql += ", @sourceOfFund = " + _dao.FilterString(kyc.sourceOfFund);
  1729. sql += ", @regIdcardFrontUrl = " + _dao.FilterString(kyc.regIdcardFrontUrl);
  1730. sql += ", @regIdcardBackUrl = " + _dao.FilterString(kyc.regIdcardBackUrl);
  1731. sql += ", @passbookUrl = " + _dao.FilterString(kyc.passbookUrl);
  1732. sql += ", @passportUrl = " + _dao.FilterString(kyc.passportUrl);
  1733. sql += ", @selfieUrl = " + _dao.FilterString(kyc.selfieUrl);
  1734. sql += ", @referralCode = " + _dao.FilterString(kyc.referralCode);
  1735. Log.DebugFormat("RegisterKYC | SQL : {0}", sql);
  1736. var dataTable = _dao.ParseDbResult(sql);
  1737. jsonRx.SetResponse(dataTable.ResponseCode, dataTable.Msg, dataTable.Id);
  1738. jsonRx.Extra = dataTable.Extra;
  1739. return jsonRx;
  1740. }
  1741. public JsonRxResponse RealtimeValidation(RealtimeValidationModel model)
  1742. {
  1743. var lang = Convert.ToString(CallContext.GetData(Constants.Language));
  1744. JsonRxResponse jsonRx = new JsonRxResponse();
  1745. var sql = "EXEC mobile_proc_realtime_validation @flag='validation'";
  1746. sql += ", @username = " + _dao.FilterString(model.Username);
  1747. sql += ", @idNumber = " + _dao.FilterString(model.IdNumber);
  1748. sql += ", @idType = " + _dao.FilterString(model.IdType);
  1749. Log.DebugFormat("RealtimeValidation | Lang : {0} | SQL : {1}", lang, sql);
  1750. var dt = _dao.ParseDbResult(sql);
  1751. string enumString = string.Empty;
  1752. if (dt.ResponseCode == "1")
  1753. {
  1754. enumString = RESPONSE_MSG.VALIDATION_FAIL_1.ToString();
  1755. }
  1756. else if (dt.ResponseCode == "2")
  1757. {
  1758. enumString = RESPONSE_MSG.VALIDATION_FAIL_2.ToString();
  1759. }
  1760. var map = Utilities.GetLanguageMapping(enumString, lang);
  1761. return new JsonRxResponse { ErrorCode = dt.ResponseCode.Equals("0") ? "0" : "1", Msg = map.Message, Id = dt.Id, Extra = dt.Extra };
  1762. //jsonRx.SetResponse(dt.ResponseCode, dt.Msg, dt.Id);
  1763. //jsonRx.Extra = dt.Extra;
  1764. //return jsonRx;
  1765. }
  1766. public JsonRxResponse GetCDDI(string userId)
  1767. {
  1768. JsonRxResponse jsonRx = new JsonRxResponse();
  1769. try
  1770. {
  1771. var sql = "EXEC proc_mobile_StaticData @flag='cddi' ";
  1772. sql += ", @customerId = " + _dao.FilterString(userId);
  1773. Log.DebugFormat("GetCDDI | SQL : {0}", sql);
  1774. var dataSet = _dao.ExecuteDataset(sql);
  1775. if (dataSet.Tables[0].Rows.Count == 0)
  1776. {
  1777. Log.DebugFormat("No Data found for GetCDDI");
  1778. jsonRx.ErrorCode = "1";
  1779. jsonRx.Msg = "No CDDI data found";
  1780. return jsonRx;
  1781. }
  1782. if (dataSet.Tables.Count > 1)
  1783. {
  1784. CDDIResponseModel _cddi = new CDDIResponseModel();
  1785. /* Purpose of Remittance*/
  1786. var Reason = from cc in dataSet.Tables[1].AsEnumerable()
  1787. select new PurposeOfRemittance
  1788. {
  1789. id = cc.Field<int>("id").ToString(),
  1790. text = cc.Field<string>("text")
  1791. };
  1792. _cddi.PurposeOfRemittance = Reason.ToList();
  1793. /* Source of Fund*/
  1794. var Source = from cc in dataSet.Tables[0].AsEnumerable()
  1795. select new SourceOfFund
  1796. {
  1797. id = cc.Field<int>("id").ToString(),
  1798. text = cc.Field<string>("text")
  1799. };
  1800. _cddi.UserId = userId;
  1801. _cddi.SourceOfFund = Source.ToList();
  1802. jsonRx.ErrorCode = "0";
  1803. jsonRx.Msg = "Success";
  1804. jsonRx.Data = _cddi;
  1805. return jsonRx;
  1806. }
  1807. else
  1808. {
  1809. jsonRx.ErrorCode = "1";
  1810. jsonRx.Msg = "No data found";
  1811. jsonRx.Data = null;
  1812. return jsonRx;
  1813. }
  1814. }
  1815. catch (Exception e)
  1816. {
  1817. Log.DebugFormat($"Exception : {e.ToString()}");
  1818. jsonRx.ErrorCode = "1";
  1819. jsonRx.Msg = "Failed";
  1820. return jsonRx;
  1821. }
  1822. }
  1823. public JsonRxResponse DynamicReceiverField(DynamicReceiverRequest dynamicReceiverRequest, string customerId)
  1824. {
  1825. var lang = Convert.ToString(CallContext.GetData(Constants.Language));
  1826. JsonRxResponse jsonRx = new JsonRxResponse();
  1827. try
  1828. {
  1829. var sql = "EXEC PROC_MOBILE_DYNAMIC_RECEIVERDETAILS ";
  1830. sql += " @countryId = " + _dao.FilterString(dynamicReceiverRequest.CountryId);
  1831. sql += ", @serviceType = " + _dao.FilterString(dynamicReceiverRequest.ServiceType);
  1832. sql += ", @customerId = " + _dao.FilterString(customerId);
  1833. Log.DebugFormat("DynamicReceiverField | SQL : {0}", sql);
  1834. var dataSet = _dao.ExecuteDataset(sql);
  1835. //List<DataRow> rowsIos = new List<DataRow>();
  1836. //if (dynamicReceiverRequest.deviceType.ToLower().Equals("ios"))
  1837. //{
  1838. // var sql1 = "EXEC PROC_MOBILE_BRANCH";
  1839. // sql1 += " @countryId = " + _dao.FilterString(dynamicReceiverRequest.CountryId);
  1840. // sql1 += ", @serviceType = " + _dao.FilterString(dynamicReceiverRequest.ServiceType);
  1841. // sql1 += ", @customerId = " + _dao.FilterString(customerId);
  1842. // Log.DebugFormat("DynamicReceiverField GetBranches| SQL : {0}", sql1);
  1843. // var dataset1 = _dao.ExecuteDataset(sql1);
  1844. // if (dataset1 != null && dataset1.Tables.Count > 0)
  1845. // {
  1846. // rowsIos = dataset1.Tables[0].Rows.Cast<DataRow>().ToList();
  1847. // }
  1848. //}
  1849. List<DymanicField> dymanicFields = new List<DymanicField>();
  1850. DynamicStaticData s = new DynamicStaticData();
  1851. if (dataSet.Tables[0].Rows.Count == 0)
  1852. {
  1853. Log.DebugFormat("No Data found for DynamicReceiver field");
  1854. jsonRx.ErrorCode = "1";
  1855. // jsonRx.Msg = "No DynamicReceiver field List";
  1856. //return jsonRx;
  1857. // var ErrorCode = dataSet.Tables[0].Rows[0]["ErrorCode"].ToString();
  1858. var map = Utilities.GetLanguageMapping(RESPONSE_MSG.DYNAMIC_RECEIVER_FIELD_FAIL.ToString(), lang);
  1859. return new JsonRxResponse { ErrorCode = "1", Msg = map.Message };
  1860. }
  1861. if (dataSet.Tables.Count > 1)
  1862. {
  1863. //dynamic field
  1864. foreach (DataRow row in dataSet.Tables[0].Rows)
  1865. {
  1866. dymanicFields.Add(new DymanicField
  1867. {
  1868. Field = row["field"].ToString(),
  1869. FieldRequired = row["fieldRequired"].ToString(),
  1870. MinLength = Convert.ToInt16(row["minfieldLength"].ToString()),
  1871. MaxLength = Convert.ToInt16(row["maxfieldLength"].ToString()),
  1872. Keyboard = row["KeyWord"].ToString()
  1873. });
  1874. }
  1875. /* TransferReason Start*/
  1876. var Reason = from cc in dataSet.Tables[1].AsEnumerable()
  1877. select new TransferReason
  1878. {
  1879. id = cc.Field<string>("id").ToString(),
  1880. text = cc.Field<string>("text")
  1881. };
  1882. s.TransferReasons = Reason.ToList();
  1883. //var reasonList = from b in dataSet.Tables[1].AsEnumerable() select new { Reason = b.Field<string>("Reason") };
  1884. //var Reason = reasonList.ToList().Select(x => x.Reason).ToArray();
  1885. /* Relation Start*/
  1886. var Relation = from cc in dataSet.Tables[2].AsEnumerable()
  1887. select new Relation
  1888. {
  1889. id = cc.Field<string>("id").ToString(),
  1890. text = cc.Field<string>("text")
  1891. };
  1892. s.Relations = Relation.ToList();
  1893. //var relationList = from b in dataSet.Tables[2].AsEnumerable() select new { Relation = b.Field<string>("Relation") };
  1894. //var Relation = relationList.ToList().Select(x => x.Relation).ToArray();
  1895. /* IdType Start*/
  1896. var IdType = from cc in dataSet.Tables[3].AsEnumerable()
  1897. select new IdType
  1898. {
  1899. id = cc.Field<string>("id").ToString(),
  1900. text = cc.Field<string>("text")
  1901. };
  1902. s.ReceiverIdType = IdType.ToList();
  1903. //var idTypeList = from b in dataSet.Tables[3].AsEnumerable() select new { IdType = b.Field<string>("IdType") };
  1904. //var IdType = idTypeList.ToList().Select(x => x.IdType).ToArray();
  1905. //var bankNameList = from b in dataSet.Tables[4].AsEnumerable() select new { BankName = b.Field<string>("BankName") };
  1906. //var Bank = bankNameList.ToList().Select(x => x.BankName).ToArray();
  1907. var Proviences = from cc in dataSet.Tables[4].AsEnumerable()
  1908. select new Provinces
  1909. {
  1910. id = cc.Field<string>("id").ToString(),
  1911. text = cc.Field<string>("text")
  1912. };
  1913. s.Provinces = Proviences.ToList();
  1914. var lsp = new List<Provinces>();
  1915. foreach (var drp in s.Provinces)
  1916. {
  1917. Provinces p = new Provinces();
  1918. p.id = Convert.ToString(drp.text);
  1919. p.text = Convert.ToString(drp.text);
  1920. var lsd = new List<District>();
  1921. var ddt = dataSet.Tables[5];
  1922. var dist = from dd in ddt.AsEnumerable()
  1923. where dd.Field<string>("provinceId") == drp.id
  1924. select new
  1925. {
  1926. id = dd.Field<string>("id"),
  1927. text = dd.Field<string>("text")
  1928. };
  1929. foreach (var drd in dist)
  1930. {
  1931. District d = new District();
  1932. d.id = Convert.ToString(drd.text);
  1933. d.text = Convert.ToString(drd.text);
  1934. lsd.Add(d);
  1935. }
  1936. p.District = lsd;
  1937. lsp.Add(p);
  1938. }
  1939. s.Provinces = lsp;
  1940. var payMode = dataSet.Tables[7];
  1941. List<DPayoutmode> pmodeLs = new List<DPayoutmode>();
  1942. if (payMode.Rows.Count > 0)
  1943. {
  1944. foreach (DataRow dr in payMode.Rows)
  1945. {
  1946. var currs = Convert.ToString(dr["PayCurrency"]);
  1947. var lscurr = new List<string>();
  1948. if (!string.IsNullOrEmpty(currs))
  1949. {
  1950. string[] str = currs.Split(',').SelectDistinct();
  1951. foreach (string ss in str)
  1952. {
  1953. lscurr.Add(ss);
  1954. }
  1955. }
  1956. var pMode = new DPayoutmode
  1957. {
  1958. Id = Convert.ToString(dr["ModeId"])
  1959. ,
  1960. Mode = Convert.ToString(dr["Mode"])
  1961. ,
  1962. PayoutPartner = Convert.ToString(dr["PayoutPartner"])
  1963. ,
  1964. PayCurrency = lscurr,
  1965. Bankrequired = Convert.ToString(dr["BankRequired"])
  1966. };
  1967. var banks = dataSet.Tables[8];
  1968. var bankList = new List<Banks>();
  1969. foreach (DataRow drr in banks.Rows)
  1970. {
  1971. var b = new Banks
  1972. {
  1973. PayoutPartner = Convert.ToString(drr["payoutPartner"]),
  1974. Id = Convert.ToString(drr["Id"]),
  1975. Name = Convert.ToString(drr["Name"]),
  1976. Code = Convert.ToString(drr["Code"]),
  1977. BranchRequired = Convert.ToString(drr["BranchRequired"]),
  1978. IsAccountRequired = Convert.ToString(drr["IsAccountRequired"]),
  1979. IsAccountValidation = Convert.ToString(drr["IsAccountValidation"])
  1980. };
  1981. var durrBank = dataSet.Tables[9];
  1982. var branchList = new List<BankBranch>();
  1983. foreach (DataRow drBranch in durrBank.Rows)
  1984. {
  1985. if (Convert.ToString(drBranch["BankId"]).Equals(b.Id))
  1986. {
  1987. branchList.Add(new BankBranch { Id = Convert.ToString(drBranch["Id"]), Name = Convert.ToString(drBranch["Name"]) });
  1988. }
  1989. }
  1990. if (b.BranchRequired.Equals("True"))
  1991. {
  1992. b.BranchList = branchList;
  1993. }
  1994. var durr = dataSet.Tables[10];
  1995. List<string> pC = new List<string>();
  1996. foreach (DataRow drrr in durr.Rows)
  1997. {
  1998. if (Convert.ToString(drrr["Id"]).Equals(b.Id))
  1999. {
  2000. pC.Add(Convert.ToString(drrr["Currency"]));
  2001. }
  2002. }
  2003. b.PayCurrency = pC;
  2004. bankList.Add(b);
  2005. }
  2006. s.BankList = bankList;
  2007. }
  2008. }
  2009. var payoutPartner = Convert.ToString(dataSet.Tables[11].Rows[0][0]);
  2010. jsonRx.ErrorCode = "0";
  2011. jsonRx.Msg = "Success";
  2012. jsonRx.Data = new
  2013. {
  2014. PayoutPartner = payoutPartner,
  2015. DynamicField = dymanicFields,
  2016. Relations = s.Relations,
  2017. Reason = s.TransferReasons,
  2018. ReceiverIdType = s.ReceiverIdType,
  2019. Provinces = s.Provinces,
  2020. BankList = s.BankList
  2021. };
  2022. }
  2023. else
  2024. {
  2025. jsonRx.ErrorCode = "1";
  2026. jsonRx.Msg = "No data found";
  2027. jsonRx.Data = null;
  2028. }
  2029. return jsonRx;
  2030. }
  2031. catch (Exception e)
  2032. {
  2033. Log.DebugFormat($"Exception | DynamicReceiverField : {e.ToString()}");
  2034. jsonRx.ErrorCode = "1";
  2035. jsonRx.Msg = "Failed";
  2036. return jsonRx;
  2037. }
  2038. }
  2039. public JsonRxResponse GetReceiverInformation(string customerId)
  2040. {
  2041. var lang = Convert.ToString(CallContext.GetData(Constants.Language));
  2042. JsonRxResponse jsonRx = new JsonRxResponse();
  2043. try
  2044. {
  2045. var sql = "EXEC PROC_MOBILE_RECEIVER_INFORMATION";
  2046. sql += " @flag = " + _dao.FilterString("receiver-info");
  2047. sql += ", @customerId = " + _dao.FilterString(customerId);
  2048. Log.DebugFormat("GetReceiverInformation | SQL : {0}", sql);
  2049. var dataSet = _dao.ExecuteDataset(sql);
  2050. List<ReceiverInfoModel> rim = new List<ReceiverInfoModel>();
  2051. var map = Utilities.GetLanguageMapping(RESPONSE_MSG.GET_RECEIVER_INFORMATION_FAIL_1.ToString(), lang);
  2052. if (dataSet.Tables[0].Rows.Count == 0)
  2053. {
  2054. Log.DebugFormat("ReceiverInfoModel field count is 0");
  2055. jsonRx.ErrorCode = "0";
  2056. //jsonRx.Msg = "No ReceiverInfoModel field List";
  2057. jsonRx.Msg = map.Message;
  2058. jsonRx.Data = new System.Collections.ArrayList();
  2059. return jsonRx;
  2060. }
  2061. foreach (DataRow row in dataSet.Tables[0].Rows)
  2062. {
  2063. var s = GetReceiverInfoModel(row);
  2064. rim.Add(s);
  2065. }
  2066. jsonRx.ErrorCode = "0";
  2067. jsonRx.Msg = "Success";
  2068. jsonRx.Data = rim;
  2069. return jsonRx;
  2070. }
  2071. catch (Exception e)
  2072. {
  2073. Log.DebugFormat($"Exception : {e.ToString()}");
  2074. jsonRx.ErrorCode = "1";
  2075. //jsonRx.Msg = "Failed";
  2076. var map = Utilities.GetLanguageMapping(RESPONSE_MSG.GET_RECEIVER_INFORMATION_FAIL_2.ToString(), lang);
  2077. jsonRx.Msg = map.Message;
  2078. return jsonRx;
  2079. }
  2080. }
  2081. private ReceiverInfoModel GetReceiverInfoModel(DataRow row)
  2082. {
  2083. ReceiverInfoBranch b = null;
  2084. ReceiverInfoAgent a = null;
  2085. ReceiverInfoPaymentmethod p = null;
  2086. if (!string.IsNullOrWhiteSpace(Convert.ToString(row["branchId"])))
  2087. {
  2088. b = new ReceiverInfoBranch();
  2089. b.id = Convert.ToString(row["branchId"]);
  2090. b.name = Convert.ToString(row["branchName"]);
  2091. b.localizedName = Convert.ToString(row["branchLocalizedName"]);
  2092. }
  2093. //if (!string.IsNullOrWhiteSpace(Convert.ToString(row["bankId"])))
  2094. //{
  2095. a = new ReceiverInfoAgent();
  2096. a.id = Convert.ToString(row["bankId"]);
  2097. a.name = Convert.ToString(row["bankName"]);
  2098. a.localizedName = Convert.ToString(row["bankLocalizedName"]);
  2099. a.accountNo = Convert.ToString(row["accountNo"]);
  2100. a.currency = string.IsNullOrWhiteSpace(Convert.ToString(row["bankCurrency"])) ? null : Convert.ToString(row["bankCurrency"]).Split(',');
  2101. a.branch = b;
  2102. //}
  2103. p = new ReceiverInfoPaymentmethod();
  2104. //Commented by arjun
  2105. if (!string.IsNullOrWhiteSpace(Convert.ToString(row["paymentMethodId"])))
  2106. {
  2107. var country = Convert.ToString(row["country"]) ?? "English";
  2108. //var path = GetStatic.ReadWebConfig("ServiceType_Resource", "");
  2109. //var text = File.ReadAllText(path);
  2110. //List<ServiceTypeDetails> sd = JsonConvert.DeserializeObject<List<ServiceTypeDetails>>(text);
  2111. //var idx = sd.FindIndex(x => x.countryName.ToLower() == country.ToLower());
  2112. //var data = new ServiceTypeDetails();
  2113. //if (idx < 0)
  2114. //{
  2115. // data = sd[sd.FindIndex(x => x.countryCode == "en")];
  2116. //}
  2117. //else
  2118. //{
  2119. // data = sd[idx];
  2120. //}
  2121. p.id = Convert.ToString(row["paymentMethodId"]);
  2122. p.name = Convert.ToString(row["paymentMethodName"]);
  2123. //added by arjun
  2124. p.localizedName = Convert.ToString(row["paymentMethodName"]);
  2125. //if (Convert.ToString(row["paymentMethodName"]).ToLower().Equals("Cash Payment".ToLower()))
  2126. //{
  2127. // p.localizedName = data.cashPayment;
  2128. //}
  2129. //else if (Convert.ToString(row["paymentMethodName"]).ToLower().Equals("Bank Deposit".ToLower()))
  2130. //{
  2131. // p.localizedName = data.bankDeposit;
  2132. //}
  2133. //else if (Convert.ToString(row["paymentMethodName"]).ToLower().Equals("Mobile Wallet".ToLower()))
  2134. //{
  2135. // p.localizedName = data.mobileWallet;
  2136. //}
  2137. //else if (Convert.ToString(row["paymentMethodName"]).ToLower().Equals("Home Delivery".ToLower()))
  2138. //{
  2139. // p.localizedName = data.homeDelivery;
  2140. //}
  2141. //else if (Convert.ToString(row["paymentMethodName"]).ToLower().Equals("Card Payment".ToLower()))
  2142. //{
  2143. // p.localizedName = data.cardPayment;
  2144. //}
  2145. p.currency = string.IsNullOrWhiteSpace(Convert.ToString(row["paymentMethodCurrency"])) ? null : Convert.ToString(row["paymentMethodCurrency"]).Split(',');
  2146. }
  2147. var s = new ReceiverInfoModel();
  2148. s.receiverId = Convert.ToString(row["receiverId"]);
  2149. s.fullName = Convert.ToString(row["fullName"]);
  2150. s.firstName = Convert.ToString(row["firstName"]);
  2151. s.middleName = Convert.ToString(row["middleName"]);
  2152. s.lastName = Convert.ToString(row["lastName1"]);
  2153. s.localFullName = Convert.ToString(row["localizedName"]);
  2154. s.country = Convert.ToString(row["country"]);
  2155. s.countryId = Convert.ToString(row["countryId"]);
  2156. s.countryCode = Convert.ToString(row["countryCode"]);
  2157. s.address = Convert.ToString(row["address"]);
  2158. s.state = Convert.ToString(row["state"]);
  2159. s.stateId = Convert.ToString(row["stateId"]);
  2160. s.district = Convert.ToString(row["district"]);
  2161. s.districtId = Convert.ToString(row["districtId"]);
  2162. s.city = Convert.ToString(row["city"]);
  2163. s.email = Convert.ToString(row["email"]);
  2164. s.mobile = Convert.ToString(row["mobile"]);
  2165. s.relationship = Convert.ToString(row["relationship"]);
  2166. s.relationshipId = Convert.ToString(row["relationshipId"]);
  2167. s.district = Convert.ToString(row["district"]);
  2168. s.purposeOfRemit = Convert.ToString(row["purposeOfRemit"]);
  2169. s.purposeOfRemitId = Convert.ToString(row["purposeOfRemitId"]);
  2170. s.idType = Convert.ToString(row["idType"]);
  2171. s.idTypeId = Convert.ToString(row["idTypeId"]);
  2172. s.idNumber = Convert.ToString(row["idNumber"]);
  2173. s.localFirstName = Convert.ToString(row["localFirstName"]);
  2174. s.localMiddleName = Convert.ToString(row["localMiddleName"]);
  2175. s.localLastName = Convert.ToString(row["localLastName1"]);
  2176. s.payoutPartner = Convert.ToString(row["payoutPartner"]);
  2177. s.nativeCountry = Convert.ToString(row["nativeCountry"]);
  2178. s.nativeCountryCode = Convert.ToString(row["nativeCountryCode"]);
  2179. s.nativeCountryId = Convert.ToString(row["nativeCountryId"]);
  2180. s.hasVerifiedOTP = Convert.ToBoolean(row["isOTPVerified"]);
  2181. s.isForceUpdate = Convert.ToString(row["isForceUpdate"]);
  2182. if (row.Table.Columns.Contains("IsAccountValidation"))
  2183. {
  2184. s.IsAccountValidationReq = Convert.ToString(row["IsAccountValidation"]);
  2185. }
  2186. if (row.Table.Columns.Contains("ApiBankCode"))
  2187. {
  2188. s.ApiBankCode = Convert.ToString(row["ApiBankCode"]);
  2189. }
  2190. s.isPartnerChanged = string.IsNullOrEmpty(a.id) ? "1" : "0";
  2191. if (s.countryId.Equals("151") && !string.IsNullOrWhiteSpace(p.id) && p.id.Equals("1"))
  2192. {
  2193. s.isPartnerChanged = "0";
  2194. }
  2195. else if (s.countryId.Equals("203") && !string.IsNullOrWhiteSpace(p.id) && p.id.Equals("12"))
  2196. {
  2197. s.isPartnerChanged = "0";
  2198. }
  2199. if (s.countryId.Equals("151") && !string.IsNullOrWhiteSpace(p.id) && p.id.Equals("2") && !string.IsNullOrWhiteSpace(a.id))
  2200. {
  2201. s.isPartnerChanged = "0";
  2202. }
  2203. s.paymentMethod = p;
  2204. s.agent = a;
  2205. return s;
  2206. }
  2207. public DataTable GetReceiverFields(ReceiverInfoModel receiver)
  2208. {
  2209. var sql = "EXEC PROC_RECEIVERFEILD";
  2210. sql += " @countryId= " + _dao.FilterString(receiver.countryId);
  2211. sql += " ,@serviceType= " + _dao.FilterString(receiver.paymentMethod.id);
  2212. return _dao.ExecuteDataTable(sql);
  2213. }
  2214. public JsonRxResponse AddReceiver(string customerId, ReceiverInfoModel receiver)
  2215. {
  2216. var lang = Convert.ToString(CallContext.GetData(Constants.Language));
  2217. JsonRxResponse jsonRx = new JsonRxResponse();
  2218. try
  2219. {
  2220. var sql = "EXEC PROC_MOBILE_RECEIVER_INFORMATION ";
  2221. sql += " @flag = " + _dao.FilterString("add");
  2222. sql += " ,@customerId = " + _dao.FilterString(customerId);
  2223. sql += " ,@receiverId= " + _dao.FilterString(receiver.receiverId);
  2224. sql += " ,@firstName= " + _dao.FilterString(receiver.firstName);
  2225. sql += " ,@middleName = " + _dao.FilterString(receiver.middleName);
  2226. sql += " ,@lastName1 = " + _dao.FilterString(receiver.lastName);
  2227. sql += " ,@localFirstName = " + _dao.FilterStringUnicode(receiver.localFirstName);
  2228. sql += " ,@localMiddleName = " + _dao.FilterStringUnicode(receiver.localMiddleName);
  2229. sql += " ,@localLastName1= " + _dao.FilterStringUnicode(receiver.localLastName);
  2230. sql += " ,@country = " + _dao.FilterString(receiver.country);
  2231. sql += " ,@address= " + _dao.FilterString(receiver.address);
  2232. sql += " ,@state = " + _dao.FilterString(receiver.stateId);
  2233. sql += " ,@city = " + _dao.FilterString(receiver.city);
  2234. sql += " ,@email = " + _dao.FilterString(receiver.email);
  2235. sql += " ,@mobile= " + _dao.FilterString(receiver.mobile);
  2236. sql += " ,@relationship = " + _dao.FilterString(receiver.relationshipId);
  2237. sql += " ,@district = " + _dao.FilterString(receiver.districtId);
  2238. sql += " ,@purposeOfRemit= " + _dao.FilterString(receiver.purposeOfRemitId);
  2239. sql += " ,@fullName = " + _dao.FilterString(receiver.fullName);
  2240. sql += " ,@idType= " + _dao.FilterString(receiver.idType);
  2241. sql += " ,@idNumber= " + _dao.FilterString(receiver.idNumber);
  2242. sql += " ,@nativeCountry = " + _dao.FilterString(receiver.nativeCountry);
  2243. if (receiver.agent != null)
  2244. {
  2245. sql += " ,@bank = " + _dao.FilterString(receiver.agent.id);
  2246. sql += " ,@accountNo = " + _dao.FilterString(receiver.agent.accountNo);
  2247. if (receiver.agent.branch != null)
  2248. {
  2249. sql += " ,@branch = " + _dao.FilterString(receiver.agent.branch.id);
  2250. }
  2251. }
  2252. if (receiver.paymentMethod != null)
  2253. {
  2254. sql += " ,@paymentMethodId = " + _dao.FilterString(receiver.paymentMethod.id);
  2255. }
  2256. Log.DebugFormat("AddReceiver | SQL : {0}", sql);
  2257. var dataSet = _dao.ParseDbResult(sql);
  2258. string enumString = string.Empty;
  2259. if (dataSet.ResponseCode.Equals("0"))
  2260. {
  2261. enumString = RESPONSE_MSG.ADD_RECEIVER_SUCCESS.ToString();
  2262. }
  2263. else if (dataSet.ResponseCode.Equals("1"))
  2264. {
  2265. enumString = RESPONSE_MSG.ADD_RECEIVER_FAIL.ToString();
  2266. }
  2267. jsonRx.ErrorCode = dataSet.ResponseCode;
  2268. //jsonRx.Msg = dataSet.Msg;
  2269. jsonRx.Id = dataSet.Id;
  2270. //return jsonRx;
  2271. var map = Utilities.GetLanguageMapping(enumString, lang);
  2272. return new JsonRxResponse { ErrorCode = dataSet.ResponseCode.Equals("0") ? "0" : "1", Msg = map.Message, Id = dataSet.Id };
  2273. }
  2274. catch (Exception e)
  2275. {
  2276. Log.ErrorFormat($"Exception : {e.ToString()}");
  2277. jsonRx.ErrorCode = "1";
  2278. jsonRx.Msg = "Exception has occured.";
  2279. return jsonRx;
  2280. }
  2281. }
  2282. public JsonRxResponse ModifyReceiver(string customerId, string receiverId, ReceiverInfoModel receiver)
  2283. {
  2284. var lang = Convert.ToString(CallContext.GetData(Constants.Language));
  2285. JsonRxResponse jsonRx = new JsonRxResponse();
  2286. try
  2287. {
  2288. var sql = "EXEC PROC_MOBILE_RECEIVER_INFORMATION ";
  2289. sql += " @flag = " + _dao.FilterString("modify");
  2290. sql += " ,@customerId = " + _dao.FilterString(customerId);
  2291. sql += " ,@receiverId = " + _dao.FilterString(receiver.receiverId);
  2292. sql += " ,@firstName= " + _dao.FilterString(receiver.firstName);
  2293. sql += " ,@middleName= " + _dao.FilterString(receiver.middleName);
  2294. sql += " ,@lastName1= " + _dao.FilterString(receiver.lastName);
  2295. sql += " ,@localFirstName= " + _dao.FilterStringUnicode(receiver.localFirstName);
  2296. sql += " ,@localMiddleName= " + _dao.FilterStringUnicode(receiver.localMiddleName);
  2297. sql += " ,@localLastName1= " + _dao.FilterStringUnicode(receiver.localLastName);
  2298. sql += " ,@country= " + _dao.FilterString(receiver.country);
  2299. sql += " ,@address= " + _dao.FilterString(receiver.address);
  2300. sql += " ,@state= " + _dao.FilterString(receiver.stateId);
  2301. sql += " ,@city = " + _dao.FilterString(receiver.city);
  2302. sql += " ,@email= " + _dao.FilterString(receiver.email);
  2303. sql += " ,@mobile= " + _dao.FilterString(receiver.mobile);
  2304. sql += " ,@relationship = " + _dao.FilterString(receiver.relationship);
  2305. sql += " ,@relationshipId = " + _dao.FilterString(receiver.relationshipId);
  2306. sql += " ,@district = " + _dao.FilterString(receiver.districtId);
  2307. sql += " ,@purposeOfRemit= " + _dao.FilterString(receiver.purposeOfRemitId);
  2308. sql += " ,@fullName = " + _dao.FilterString(receiver.fullName);
  2309. sql += " ,@idType= " + _dao.FilterString(receiver.idType);
  2310. sql += " ,@idNumber= " + _dao.FilterString(receiver.idNumber);
  2311. sql += " ,@nativeCountry= " + _dao.FilterString(receiver.nativeCountry);
  2312. if (receiver.agent != null)
  2313. {
  2314. sql += " ,@bank = " + _dao.FilterString(receiver.agent.id);
  2315. sql += " ,@accountNo = " + _dao.FilterString(receiver.agent.accountNo);
  2316. if (receiver.agent.branch != null)
  2317. {
  2318. sql += " ,@branch = " + _dao.FilterString(receiver.agent.branch.id);
  2319. }
  2320. }
  2321. if (receiver.paymentMethod != null)
  2322. {
  2323. sql += " ,@paymentMethodId = " + _dao.FilterString(receiver.paymentMethod.id);
  2324. }
  2325. Log.DebugFormat("ModifyReceiver | SQL : {0}", sql);
  2326. var dataSet = _dao.ParseDbResult(sql);
  2327. string enumString = string.Empty;
  2328. if (dataSet.ResponseCode.Equals("0"))
  2329. {
  2330. enumString = RESPONSE_MSG.MODIFY_RECEIVER_SUCCESS.ToString();
  2331. }
  2332. else if (dataSet.ResponseCode.Equals("1"))
  2333. {
  2334. enumString = RESPONSE_MSG.MODIFY_RECEIVER_FAIL.ToString();
  2335. }
  2336. jsonRx.ErrorCode = dataSet.ResponseCode;
  2337. //jsonRx.Id = dataSet.Id;
  2338. //jsonRx.Msg = dataSet.Msg;
  2339. //return jsonRx;
  2340. var map = Utilities.GetLanguageMapping(enumString, lang);
  2341. return new JsonRxResponse { ErrorCode = dataSet.ResponseCode.Equals("0") ? "0" : "1", Msg = map.Message, Id = dataSet.Id };
  2342. }
  2343. catch (Exception e)
  2344. {
  2345. Log.DebugFormat($"Exception : {e.StackTrace.ToString()}");
  2346. jsonRx.ErrorCode = "1";
  2347. jsonRx.Msg = "Exception has occured.";
  2348. return jsonRx;
  2349. }
  2350. }
  2351. public ReceiverInfoModel GetReceiver(string customerId, string receiverId)
  2352. {
  2353. var sql = "EXEC PROC_MOBILE_RECEIVER_INFORMATION ";
  2354. sql += " @flag = " + _dao.FilterString("get");
  2355. sql += " ,@customerId = " + _dao.FilterString(customerId);
  2356. sql += " ,@receiverId = " + _dao.FilterString(receiverId);
  2357. Log.DebugFormat("GetReceiver | SQL : {0}", sql);
  2358. var dr = _dao.ExecuteDataRow(sql);
  2359. var s = GetReceiverInfoModel(dr);
  2360. return s;
  2361. }
  2362. public List<CountryList> GetCountryServiceTypeList()
  2363. {
  2364. var dt1 = new DataTable();
  2365. var dt2 = new DataTable();
  2366. var sql = "EXEC PROC_MOBILE_COUNTRYSERVICETYPE_DETAILS @flag='ss'";
  2367. Log.DebugFormat("GetCountryServiceTypeList | SQL : {0}", sql);
  2368. var dataSet = _dao.ExecuteDataset(sql);
  2369. List<CountryList> countryList = null;
  2370. countryList = new List<CountryList>();
  2371. foreach (DataRow row in dataSet.Tables[0].Rows)
  2372. {
  2373. var csl = dataSet.Tables[0];
  2374. var stl = dataSet.Tables[1];
  2375. foreach (DataRow dr in csl.Rows)
  2376. {
  2377. var countryId = dr["countryId"].ToString();
  2378. List<ServiceTypeAvailable> listServiceType = new List<ServiceTypeAvailable>();
  2379. var serviceType = stl.AsEnumerable().Where(x => x["countryId"].ToString() == countryId).ToList();
  2380. foreach (var st in serviceType)
  2381. {
  2382. ServiceTypeAvailable sType = new ServiceTypeAvailable()
  2383. {
  2384. id = st["payoutmethodId"].ToString(),
  2385. text = st["payoutName"].ToString(),
  2386. description = st["bussinessDescription"].ToString(),
  2387. currency = st["PayCurrency"].ToString().Split(',')
  2388. };
  2389. listServiceType.Add(sType);
  2390. }
  2391. countryList.Add(new CountryList
  2392. {
  2393. countryCode = dr["countryCode"].ToString(),
  2394. countryName = dr["countryName"].ToString(),
  2395. countryId = dr["countryId"].ToString(),
  2396. servicetypeAvailable = listServiceType
  2397. });
  2398. }
  2399. return countryList;
  2400. }
  2401. return null;
  2402. }
  2403. /* 2019.09 @Dana */
  2404. public List<TranHistoryResponse> GetDomesticTransactionHistory(DateFilterParams search, string userId)
  2405. {
  2406. List<TranHistoryResponse> liTranHistoryResponse = null;
  2407. var sql = "EXEC PROC_KFTC_DOMESTIC_TRAN_HISTORY @flag='domestictranhis'";
  2408. sql += ", @customerId=" + _dao.FilterString("temp"); //저장프로시저에서 필수값이나 transaction history호출시에는 userId를 받아오므로 임시값 보내주고 프로시저에서 조회
  2409. sql += ", @fromDate=" + _dao.FilterString(search.FromDate);
  2410. sql += ", @toDate=" + _dao.FilterString(search.ToDate);
  2411. sql += ", @userId=" + _dao.FilterString(userId);
  2412. Log.DebugFormat("GetDomesticTransactionHistory | SQL : {0}", sql);
  2413. var dt = _dao.ExecuteDataTable(sql);
  2414. if (dt == null)
  2415. {
  2416. return null;
  2417. }
  2418. liTranHistoryResponse = new List<TranHistoryResponse>();
  2419. foreach (DataRow dr in dt.Rows)
  2420. {
  2421. TranHistoryResponse tranHistoryResponse = new TranHistoryResponse()
  2422. {
  2423. TranId = Convert.ToString(dr["processId"]),
  2424. ControlNo = Convert.ToString(dr["processId"]),
  2425. PayoutMode = Convert.ToString(dr["recipientBankName"]),
  2426. SendDate = Convert.ToString(dr["tran_date"]),
  2427. PayoutAmt = Convert.ToString(dr["sendAmount"]),
  2428. PayStatus = Convert.ToString(dr["depositStatus"]),
  2429. User = Convert.ToString(dr["recipientName"]),
  2430. PCurr = Convert.ToString("KRW")
  2431. };
  2432. liTranHistoryResponse.Add(tranHistoryResponse);
  2433. }
  2434. return liTranHistoryResponse;
  2435. }
  2436. public TransactionResponse GenerateDomesticReceipt(string tranId)
  2437. {
  2438. TransactionResponse tranHistoryResponse = null;
  2439. var sql = "EXEC PROC_KFTC_DOMESTIC_TRAN_HISTORY @flag='domestictranhis'";
  2440. sql += ", @customerId=" + _dao.FilterString("temp"); //저장프로시저에서 필수값이나 transaction history호출시에는 userId를 받아오므로 임시값 보내줌
  2441. sql += ", @tranId=" + _dao.FilterString(tranId);
  2442. Log.DebugFormat("GenerateDomesticReceipt | SQL : {0}", sql);
  2443. var dt = _dao.ExecuteDataTable(sql);
  2444. if (dt == null)
  2445. {
  2446. return null;
  2447. }
  2448. tranHistoryResponse = new TransactionResponse()
  2449. {
  2450. collAmount = dt.Rows[0]["sendAmount"].ToString(),
  2451. payOutAmount = dt.Rows[0]["sendAmount"].ToString(),
  2452. serviceCharge = dt.Rows[0]["serviceFee"].ToString(),
  2453. pAgentBank = dt.Rows[0]["recipientBankName"].ToString(),
  2454. rFirstName = dt.Rows[0]["recipientName"].ToString(),
  2455. trnsDate = dt.Rows[0]["tran_date"].ToString(),
  2456. trnId = dt.Rows[0]["processId"].ToString(),
  2457. controlNo = dt.Rows[0]["processId"].ToString(),
  2458. accountNo = dt.Rows[0]["recipientAccountNum"].ToString(),
  2459. rContactNo = dt.Rows[0]["recipientPhone"].ToString()
  2460. };
  2461. return tranHistoryResponse;
  2462. }
  2463. //public CouponResult[] GetCouponList(string customerId)
  2464. //{
  2465. // List<CouponResult> reuslts = new List<CouponResult>();
  2466. // var sql = "EXEC proc_CouponOperation @flag='GetCouponList'";
  2467. // sql += ", @customerId=" + _dao.FilterString(customerId);
  2468. // var dt = _dao.ExecuteDataTable(sql);
  2469. // if (dt == null || dt.Rows.Count == 0)
  2470. // {
  2471. // return reuslts.ToArray();
  2472. // }
  2473. // foreach (DataRow row in dt.Rows)
  2474. // {
  2475. // CouponResult result = new CouponResult();
  2476. // var value = Convert.ToString(row["discountValue"]);
  2477. // result.schemeId = Convert.ToString(row["rowId"]);
  2478. // result.couponName = Convert.ToString(row["couponName"]);
  2479. // result.couponType = Convert.ToString(row["couponType"]);
  2480. // result.discountType = Convert.ToString(row["discountType"]);
  2481. // result.discountValue = value;
  2482. // result.expireDate = Convert.ToString(row["endDate"]);
  2483. // result.buyDate = Convert.ToString(row["startDate"]);
  2484. // reuslts.Add(result);
  2485. // }
  2486. // return reuslts.ToArray();
  2487. //}
  2488. public StaticData LoadFormStaticData_V3(string type)
  2489. {
  2490. StaticData s = new StaticData();
  2491. var sql = "EXEC proc_mobile_StaticData @flag=" + _dao.FilterString(type);
  2492. Log.DebugFormat("LoadFormStaticData | SQL:{0}", sql);
  2493. var ds = _dao.ExecuteDataset(sql);
  2494. if (ds == null)
  2495. {
  2496. return null;
  2497. }
  2498. List<Country> ls = new List<Country>();
  2499. if (ds.Tables.Count == 6)
  2500. {
  2501. var cdt = ds.Tables[0];
  2502. foreach (DataRow dr in cdt.Rows)
  2503. {
  2504. Country c = new Country();
  2505. c.Id = Convert.ToString(dr["countryId"]);
  2506. c.Name = Convert.ToString(dr["country"]);
  2507. c.Code = Convert.ToString(dr["Code"]);
  2508. c.IsProvienceReq = Convert.ToString(dr["IsProvienceReq"]);
  2509. var lsp = new List<Province>();
  2510. var pdt = ds.Tables[1];
  2511. var prov = from cc in pdt.AsEnumerable()
  2512. where cc.Field<string>("countryId") == c.Id
  2513. select new Province
  2514. {
  2515. id = cc.Field<string>("id"),
  2516. text = cc.Field<string>("text")
  2517. };
  2518. foreach (var drp in prov)
  2519. {
  2520. Province p = new Province();
  2521. p.id = Convert.ToString(drp.id);
  2522. p.text = Convert.ToString(drp.text);
  2523. var lsd = new List<District>();
  2524. var ddt = ds.Tables[2];
  2525. var dist = from dd in ddt.AsEnumerable()
  2526. where dd.Field<string>("provinceId") == p.id
  2527. select new
  2528. {
  2529. id = dd.Field<string>("id"),
  2530. text = dd.Field<string>("text")
  2531. };
  2532. foreach (var drd in dist)
  2533. {
  2534. District d = new District();
  2535. d.id = Convert.ToString(drd.id);
  2536. d.text = Convert.ToString(drd.text);
  2537. lsd.Add(d);
  2538. }
  2539. p.District = lsd;
  2540. lsp.Add(p);
  2541. }
  2542. c.Provinces = lsp;
  2543. ls.Add(c);
  2544. }
  2545. s.Country = ls;
  2546. var tdt = ds.Tables[3];
  2547. var tr = from cc in tdt.AsEnumerable()
  2548. select new TransferReason
  2549. {
  2550. id = cc.Field<string>("id"),
  2551. text = cc.Field<string>("text")
  2552. };
  2553. s.TransferReasons = tr.ToList();
  2554. var rtd = ds.Tables[4];
  2555. var rt = from cc in rtd.AsEnumerable()
  2556. select new Relation
  2557. {
  2558. id = cc.Field<string>("id"),
  2559. text = cc.Field<string>("text")
  2560. };
  2561. s.Relations = rt.ToList();
  2562. var rtrid = ds.Tables[5];
  2563. var rtid = from cc in rtrid.AsEnumerable()
  2564. select new IdType
  2565. {
  2566. id = cc.Field<string>("id"),
  2567. text = cc.Field<string>("text")
  2568. };
  2569. s.ReceiverIdType = rtid.ToList();
  2570. return s;
  2571. }
  2572. return null;
  2573. }
  2574. public KycStaticDataV3 LoadKycStaticData_V3(string type, string customerId)
  2575. {
  2576. KycStaticDataV3 kycData = new KycStaticDataV3();
  2577. var sql = "EXEC proc_mobile_StaticData @flag=" + _dao.FilterString(type);
  2578. sql += ", @customerId=" + _dao.FilterString(customerId);
  2579. Log.DebugFormat("LoadKycStaticData | SQL : {0}", sql);
  2580. var ds = _dao.ExecuteDataset(sql);
  2581. if (ds == null)
  2582. {
  2583. return null;
  2584. }
  2585. if (ds.Tables.Count >= 10)
  2586. {
  2587. var montly = ds.Tables[0];
  2588. var monthlyIncomes = from pr in montly.AsEnumerable()
  2589. select new MonthlyIncome
  2590. {
  2591. id = pr.Field<string>("text"),
  2592. text = pr.Field<string>("text")
  2593. };
  2594. kycData.MonthlyIncome = monthlyIncomes.ToList();
  2595. var source = ds.Tables[1];
  2596. var sof = from bk in source.AsEnumerable()
  2597. select new SourceOfFund
  2598. {
  2599. id = bk.Field<int>("id").ToString(),
  2600. text = bk.Field<string>("text")
  2601. };
  2602. kycData.SourceOfFund = sof.ToList();
  2603. var businessType = ds.Tables[2];
  2604. var busType = from bk in businessType.AsEnumerable()
  2605. select new BusniessType
  2606. {
  2607. id = bk.Field<int>("id").ToString(),
  2608. text = bk.Field<string>("text")
  2609. };
  2610. kycData.BusniessType = busType.ToList();
  2611. var idType = ds.Tables[3];
  2612. var vitr = from vit in idType.AsEnumerable()
  2613. select new IdType
  2614. {
  2615. id = vit.Field<int>("id").ToString(),
  2616. text = vit.Field<string>("text"),
  2617. isBackRequired = Convert.ToBoolean(vit.Field<int>("isBackRequired"))
  2618. };
  2619. kycData.IdType = vitr.ToList();
  2620. var addIdType = ds.Tables[4];
  2621. var addIdTypes = from vit in addIdType.AsEnumerable()
  2622. select new AdditionalIdType
  2623. {
  2624. id = vit.Field<int>("id").ToString(),
  2625. text = vit.Field<string>("text"),
  2626. isBackRequired = Convert.ToBoolean(vit.Field<int>("isBackRequired"))
  2627. };
  2628. kycData.AdditionalIdType = addIdTypes.ToList();
  2629. var personalInformation = ds.Tables[5];
  2630. if (string.IsNullOrEmpty(personalInformation.Rows[0]["idType"].ToString()))
  2631. {
  2632. kycData.PersonalInformation = null;
  2633. }
  2634. else
  2635. {
  2636. foreach (DataRow dt in personalInformation.Rows)
  2637. {
  2638. PersonalInformation perInfo = new PersonalInformation()
  2639. {
  2640. employeerName = Convert.ToString(dt["employeerName"]),
  2641. sourceOfFund = Convert.ToString(dt["sourceOfFund"]),
  2642. monthlyIncome = Convert.ToString(dt["monthlyIncome"]),
  2643. mobile = Convert.ToString(dt["mobile"]),
  2644. email = Convert.ToString(dt["email"]),
  2645. additionalAddress = Convert.ToString(dt["additionalAddress"]),
  2646. nativeCountry = Convert.ToString(dt["nativeCountry"]),
  2647. idType = Convert.ToString(dt["idType"]),
  2648. occupation = Convert.ToString(dt["occupation"]),
  2649. businessType = Convert.ToString(dt["businessType"]),
  2650. purposeOfRegistration = Convert.ToString(dt["purposeOfRegistration"]),
  2651. idIssuingCountry = Convert.ToString(dt["idIssueCountry"]),
  2652. idStartDate = Convert.ToString(dt["passportIssueDate"]),
  2653. idExpiryDate = Convert.ToString(dt["passportExpiryDate"]),
  2654. idNumber = Convert.ToString(dt["passportNumber"])
  2655. };
  2656. if (type.ToLower().Equals("kycv3-existing"))
  2657. perInfo.visaStatus = Convert.ToString(dt["visaStatus"]);
  2658. else
  2659. perInfo.additionalIdType = Convert.ToString(dt["additionalIdType"]);
  2660. kycData.PersonalInformation = perInfo;
  2661. }
  2662. }
  2663. var pictures = ds.Tables[6];
  2664. string idFrontName = null;
  2665. string idBackName = null;
  2666. string idSideName = null;
  2667. string additionalIdName = null;
  2668. string additionalIdBackName = null;
  2669. string facePictureName = null;
  2670. string registerDate = null;
  2671. string membershipId = null;
  2672. foreach (DataRow item in pictures.Rows)
  2673. {
  2674. if (item["fileDescription"].ToString() == "idFrontCustUpload")
  2675. idFrontName = item["fileName"].ToString();
  2676. else if (item["fileDescription"].ToString() == "idBackCustUpload")
  2677. idBackName = item["fileName"].ToString();
  2678. else if (item["fileDescription"].ToString() == "idSideCustUpload")
  2679. idSideName = item["fileName"].ToString();
  2680. else if (item["fileDescription"].ToString() == "additionalIdCustUpload")
  2681. additionalIdName = item["fileName"].ToString();
  2682. else if (item["fileDescription"].ToString() == "additionalIdBackCustUpload")
  2683. additionalIdBackName = item["fileName"].ToString();
  2684. else if (item["fileDescription"].ToString() == "SelfieCustUpload") //facePictureCustUpload
  2685. facePictureName = item["fileName"].ToString();
  2686. registerDate = item["REGISTERED_DATE"].ToString();
  2687. membershipId = item["MEMBESHIP_ID"].ToString();
  2688. }
  2689. if (pictures.Rows.Count > 0)
  2690. {
  2691. var idFrontfileInBytes = Encoding.UTF8.GetBytes(string.IsNullOrEmpty(idFrontName) ? "" : idFrontName);
  2692. var idBackfileInBytes = Encoding.UTF8.GetBytes(string.IsNullOrEmpty(idBackName) ? "" : idBackName);
  2693. var idSidefileInBytes = Encoding.UTF8.GetBytes(string.IsNullOrEmpty(idSideName) ? "" : idSideName);
  2694. var additionalIdfileInBytes = Encoding.UTF8.GetBytes(string.IsNullOrEmpty(additionalIdName) ? "" : additionalIdName);
  2695. var additionalIdBackfileInBytes = Encoding.UTF8.GetBytes(string.IsNullOrEmpty(additionalIdBackName) ? "" : additionalIdBackName);
  2696. var facePicturefileInBytes = Encoding.UTF8.GetBytes(string.IsNullOrEmpty(facePictureName) ? "" : facePictureName);
  2697. var moduleInBytes = Encoding.UTF8.GetBytes("kyc");
  2698. var registerDateInBytes = Encoding.UTF8.GetBytes(string.IsNullOrEmpty(registerDate) ? "" : registerDate);
  2699. var membershipIdInBytes = Encoding.UTF8.GetBytes(string.IsNullOrEmpty(membershipId) ? "" : membershipId);
  2700. Pictures pic = new Pictures()
  2701. {
  2702. idFront = !(string.IsNullOrEmpty(idFrontName)) ? ApplicationConfig.GetRootURL() + "handler/docs.ashx?img=" + Convert.ToBase64String(idFrontfileInBytes) + "&dt=" + Convert.ToBase64String(registerDateInBytes) + "&mid=" + Convert.ToBase64String(membershipIdInBytes) + "&module=" + Convert.ToBase64String(moduleInBytes) : null,
  2703. idBack = !(string.IsNullOrEmpty(idBackName)) ? ApplicationConfig.GetRootURL() + "handler/docs.ashx?img=" + Convert.ToBase64String(idBackfileInBytes) + "&dt=" + Convert.ToBase64String(registerDateInBytes) + "&mid=" + Convert.ToBase64String(membershipIdInBytes) + "&module=" + Convert.ToBase64String(moduleInBytes) : null,
  2704. idSide = !(string.IsNullOrEmpty(idSideName)) ? ApplicationConfig.GetRootURL() + "handler/docs.ashx?img=" + Convert.ToBase64String(idSidefileInBytes) + "&dt=" + Convert.ToBase64String(registerDateInBytes) + "&mid=" + Convert.ToBase64String(membershipIdInBytes) + "&module=" + Convert.ToBase64String(moduleInBytes) : null
  2705. };
  2706. if (type.ToLower().Equals("kycv3"))
  2707. {
  2708. pic.additionalId = !(string.IsNullOrEmpty(additionalIdName)) ? ApplicationConfig.GetRootURL() + "handler/docs.ashx?img=" + Convert.ToBase64String(additionalIdfileInBytes) + "&dt=" + Convert.ToBase64String(registerDateInBytes) + "&mid=" + Convert.ToBase64String(membershipIdInBytes) + "&module=" + Convert.ToBase64String(moduleInBytes) : null;
  2709. pic.additionalIdBack = !(string.IsNullOrEmpty(additionalIdBackName)) ? ApplicationConfig.GetRootURL() + "handler/docs.ashx?img=" + Convert.ToBase64String(additionalIdBackfileInBytes) + "&dt=" + Convert.ToBase64String(registerDateInBytes) + "&mid=" + Convert.ToBase64String(membershipIdInBytes) + "&module=" + Convert.ToBase64String(moduleInBytes) : null;
  2710. pic.facePicture = !(string.IsNullOrEmpty(facePictureName)) ? ApplicationConfig.GetRootURL() + "handler/docs.ashx?img=" + Convert.ToBase64String(facePicturefileInBytes) + "&dt=" + Convert.ToBase64String(registerDateInBytes) + "&mid=" + Convert.ToBase64String(membershipIdInBytes) + "&module=" + Convert.ToBase64String(moduleInBytes) : null;
  2711. }
  2712. kycData.Pictures = pic;
  2713. }
  2714. var occList = ds.Tables[7];
  2715. var occupationList = from pr in occList.AsEnumerable()
  2716. select new OccupationList
  2717. {
  2718. id = pr.Field<int>("id").ToString(),
  2719. text = pr.Field<string>("text")
  2720. };
  2721. kycData.OccupationList = occupationList.ToList();
  2722. if (type.ToLower().Equals("kycv3-existing"))
  2723. {
  2724. var visaStatus = ds.Tables[8];
  2725. var visaStat = from vit in visaStatus.AsEnumerable()
  2726. select new VisaStatus
  2727. {
  2728. id = vit.Field<int>("id").ToString(),
  2729. text = vit.Field<string>("text")
  2730. };
  2731. kycData.VisaStatus = visaStat.ToList();
  2732. }
  2733. var purpose = ds.Tables[9];
  2734. var purposeOfRegistrations = from pr in purpose.AsEnumerable()
  2735. select new PurposeOfRegistration
  2736. {
  2737. id = pr.Field<int>("id").ToString(),
  2738. text = pr.Field<string>("text")
  2739. };
  2740. kycData.purposeOfRegistration = purposeOfRegistrations.ToList();
  2741. var idIssueCountry = ds.Tables[10];
  2742. var idIssueCountries = from idc in idIssueCountry.AsEnumerable()
  2743. select new NativeCountry
  2744. {
  2745. id = idc.Field<int>("id").ToString(),
  2746. text = idc.Field<string>("text"),
  2747. code = idc.Field<string>("code"),
  2748. };
  2749. kycData.IdIssueCountry = idIssueCountries.ToList();
  2750. return kycData;
  2751. }
  2752. return null;
  2753. }
  2754. public JsonRxResponse RegisterKYC_V4(CustomerKYC_V4 kyc)
  2755. {
  2756. //KycResponse kycResponse = null;
  2757. JsonRxResponse jsonRx = new JsonRxResponse();
  2758. var moduleInBytes = Encoding.UTF8.GetBytes(Common.Helper.ConstantValues.ModuleName.kyc);
  2759. var sql = "EXEC MOBILE_PROC_CUSTOMERMASTER_V4 @flag='i-V4'";
  2760. sql += ", @userId = " + _dao.FilterString(kyc.userId);
  2761. sql += ", @type = " + kyc.type;
  2762. Log.DebugFormat("RegisterKYC_V4 | SQL : {0}", sql);
  2763. var dataTable = _dao.ParseDbResult(sql);
  2764. jsonRx.SetResponse(dataTable.ResponseCode, dataTable.Msg, dataTable.Id);
  2765. jsonRx.Extra = dataTable.Extra;
  2766. jsonRx.Extra2 = Convert.ToString(kyc.type);
  2767. return jsonRx;
  2768. }
  2769. public RewardPoints GetRewardDetails(string customerId)
  2770. {
  2771. var lang = Convert.ToString(CallContext.GetData(Constants.Language));
  2772. RewardPoints r = new RewardPoints();
  2773. var sql = "EXEC mobile_proc_customerMaster @flag='get-invite-details'";
  2774. sql += ", @sourceCustomerId = " + _dao.FilterString(customerId);
  2775. Log.DebugFormat("GetRewardDetails | SQL : {0} | {1}", sql, lang);
  2776. var ds = _dao.ExecuteDataset(sql);
  2777. // try
  2778. // {
  2779. if (ds.Tables[0].Rows.Count > 0)
  2780. {
  2781. DataTable dt = ds.Tables[0];
  2782. r.InviteCode = dt.Rows[0]["inviteCode"].ToString();
  2783. r.TotalReferral = dt.Rows[0]["totalReferral"].ToString();
  2784. r.RewardMoney = string.Format("{0:0.##}", dt.Rows[0]["rewardMoney"].ToString());
  2785. r.InviteMessageTitle = Utilities.GetLanguageMapping("INVITE_MESSAGE_TITLE", lang).Message.Replace("@rewardPoint", dt.Rows[0]["totalPoints"].ToString());
  2786. r.InviteMessageBody = Utilities.GetLanguageMapping("INVITE_MESSAGE_BODY", lang).Message
  2787. .Replace("@rewardAmount", dt.Rows[0]["totalPoints"].ToString())
  2788. .Replace("@RegReward", dt.Rows[0]["regPoints"].ToString())
  2789. .Replace("@TranReward", dt.Rows[0]["tranPoints"].ToString());
  2790. r.SourceCustomerId = dt.Rows[0]["sourceCustomerId"].ToString();
  2791. r.ShowShareBtn = ConfigurationManager.AppSettings["ShowShareBtn"].ToString();
  2792. r.RewardPts = dt.Rows[0]["totalPoints"].ToString();
  2793. r.RegReward = dt.Rows[0]["regPoints"].ToString();
  2794. r.TranReward = dt.Rows[0]["tranPoints"].ToString();
  2795. var rewardDetails = new List<RewardDetails>();
  2796. foreach (DataRow row1 in ds.Tables[1].Rows)
  2797. {
  2798. rewardDetails.Add(new RewardDetails
  2799. {
  2800. CustomerName = row1["CUSTOMER_NAME"].ToString(),
  2801. RewardAmount = string.Format("{0:0.##}", row1["REWARD_AMOUNT"].ToString()),
  2802. RewardType = $"{row1["CUSTOMER_NAME"].ToString()} - { row1["REWARD_TYPE"].ToString()}",
  2803. DestinationCustomerId = row1["DESTINATION_CUSTOMERID"].ToString(),
  2804. CreatedDate = row1["CREATED_DATE"].ToString()
  2805. });
  2806. r.Details = rewardDetails.ToList();
  2807. }
  2808. return r;
  2809. }
  2810. return null;
  2811. }
  2812. public RewardFee GetRewardFee(string customerId)
  2813. {
  2814. var lang = Convert.ToString(CallContext.GetData(Constants.Language)) ?? "en-us";
  2815. RewardFee r = new RewardFee();
  2816. var sql = "EXEC mobile_proc_customerMaster @flag='get-reward-fee'";
  2817. sql += ", @sourceCustomerId = " + _dao.FilterString(customerId);
  2818. Log.DebugFormat("GetRewardFee | SQL : {0} | {1}", sql, lang);
  2819. var dt = _dao.ExecuteDataTable(sql);
  2820. if (dt.Rows.Count > 0)
  2821. {
  2822. r.ShowRewardPoint = dt.Rows[0]["showRewardPoint"].ToString();
  2823. r.Point = dt.Rows[0]["point"].ToString();
  2824. r.RewardMessage = Utilities.GetLanguageMapping("REWARD_POINTS_MESSAGE", lang).Message.Replace("@point", dt.Rows[0]["point"].ToString());
  2825. return r;
  2826. }
  2827. return null;
  2828. }
  2829. public LoyaltyPoint GetLoyaltyPoint(string customerId)
  2830. {
  2831. var lang = Convert.ToString(CallContext.GetData(Constants.Language));
  2832. LoyaltyPoint point = new LoyaltyPoint();
  2833. var sql = "EXEC mobile_proc_customerMaster @flag='get-loyalty-points'";
  2834. sql += ", @sourceCustomerId = " + _dao.FilterString(customerId);
  2835. Log.DebugFormat("GetLoyaltyPoint | SQL : {0} | {1}", sql, lang);
  2836. var dt = _dao.ExecuteDataTable(sql);
  2837. if (dt.Rows.Count > 0)
  2838. {
  2839. point.TotalCount = dt.Rows[0]["totalCount"].ToString();
  2840. point.TranCount = dt.Rows[0]["tranCount"].ToString();
  2841. point.IsFreeSC = dt.Rows[0]["isFreeSc"].ToString();
  2842. point.IsActive = dt.Rows[0]["IsActive"].ToString();
  2843. if (point.IsActive != null && point.IsActive.Equals("N"))
  2844. {
  2845. point.LoyaltyMsgHead = Utilities.GetLanguageMapping("LOYALTY_DISABLE_HEAD", lang).Message;
  2846. point.LoyaltyMsgBody = Utilities.GetLanguageMapping("LOYALTY_DISABLE_BODY", lang).Message;
  2847. return point;
  2848. }
  2849. if (dt.Rows[0]["isFreeSc"].ToString() == "N")
  2850. {
  2851. point.LoyaltyMsgHead = Utilities.GetLanguageMapping("LOYALTY_MSG_HEAD", lang).Message.Replace("@requiredPoint", dt.Rows[0]["requiredCount"].ToString());
  2852. point.LoyaltyMsgBody = Utilities.GetLanguageMapping("LOYALTY_MSG_BODY", lang).Message.Replace("@requiredPoint", dt.Rows[0]["requiredCount"].ToString());
  2853. }
  2854. else
  2855. {
  2856. point.LoyaltyMsgHead = Utilities.GetLanguageMapping("LOYALTY_FREESC_HEAD", lang).Message;
  2857. point.LoyaltyMsgBody = Utilities.GetLanguageMapping("LOYALTY_FREESC_BODY", lang).Message;
  2858. }
  2859. return point;
  2860. }
  2861. return point;
  2862. }
  2863. public JsonRxResponse ValidateReferralCode(string referralCode)
  2864. {
  2865. var lang = Convert.ToString(CallContext.GetData(Constants.Language));
  2866. JsonRxResponse jsonRx = new JsonRxResponse();
  2867. string sql = "EXEC JsonRx_Proc_UserRegistration_V2 @FLAG = 'chk-valid-referralCode' ";
  2868. sql += ", @referralCode =" + _dao.FilterString(referralCode);
  2869. Log.DebugFormat("ValidateReferralCode | SQL : {0} | lang {1}", sql, lang);
  2870. var res = _dao.ParseDbResult(sql);
  2871. string enumString = string.Empty;
  2872. if (res.ResponseCode.Equals("0"))
  2873. {
  2874. enumString = RESPONSE_MSG.SUBMIT_OTP_SUCCESS.ToString();
  2875. }
  2876. else if (res.ResponseCode.Equals("1"))
  2877. {
  2878. enumString = RESPONSE_MSG.USER_REGISTER_FAIL_7.ToString();
  2879. }
  2880. var map = Utilities.GetLanguageMapping(enumString, lang);
  2881. return new JsonRxResponse { ErrorCode = res.ResponseCode.Equals("0") ? "0" : "1", Msg = map.Message, Id = res.Id, Extra = res.Extra };
  2882. }
  2883. }
  2884. }