using Common; using Common.Helper; using Common.KFTC; using Common.Model; using Common.Model.Config; using Common.Model.CustomerRegister; using Common.Model.Notification; using Common.Model.Remit; using Common.Model.RequestOTP; using log4net; using Newtonsoft.Json; using Repository.Utility; using System; using System.Collections.Generic; using System.Configuration; using System.Data; using System.Linq; using System.Runtime.Remoting.Messaging; using System.Text; using System.Threading.Tasks; using System.Web; using static Common.Model.DynamicReceiverSetup.DynamicReceiver; namespace Repository.Mobile { public class MobileServicesRepo : IMobileServicesRepo { private readonly Dao _dao = new Dao(); private static readonly ILog Log = LogManager.GetLogger(typeof(MobileServicesRepo)); public List GetCountriesServices() { List listExRate = null; var dt2 = new DataTable(); var dt3 = new DataTable(); var sql = "EXEC mobile_proc_GetCalculation @flag='get-exRateDetails'"; Log.DebugFormat("GetCountriesServices SQL : {0}", sql); var dataSet = _dao.ExecuteDataset(sql); int countTable = dataSet.Tables.Count; var dt1 = dataSet.Tables[1]; dt2 = dataSet.Tables[2]; //if (countTable >= 2) //{ // dt2 = dataSet.Tables[1]; //} //if (countTable >= 3) //{ // dt3 = dataSet.Tables[2]; //} if (dataSet.Tables.Count == 4) { listExRate = new List(); //var operativeCountryTbl = dt1; var currencyTbl = dt1; var payoutMethodTbl = dt2; foreach (DataRow dt in currencyTbl.Rows) { var countryId = dt["countryId"].ToString(); List listServiceAvailable = new List(); var paymentMode = payoutMethodTbl.AsEnumerable().Where(x => x["countryId"].ToString() == countryId).ToList(); foreach (DataRow payRow in paymentMode) { ServiceAvailable singleServiceAvailable = new ServiceAvailable() { id = payRow["payoutMethodId"].ToString(), text = payRow["payoutName"].ToString(), description = payRow["bussinessDescription"].ToString() }; listServiceAvailable.Add(singleServiceAvailable); } CountryServiceResponse singleExRate = new CountryServiceResponse() { country = dt["countryName"].ToString(), countryCode = dt["countryCode"].ToString(), currency = dt["currencyCode"].ToString(), countryId = dt["countryId"].ToString(), serviceAvailable = listServiceAvailable }; listExRate.Add(singleExRate); } return listExRate; } return null; } public JsonRxResponse RequestOTP(RequestOTPModel requestOTPModel) { var lang = Convert.ToString(CallContext.GetData(Constants.Language)); var sql = "EXEC mobile_proc_OTPRequest @flag='REQUEST' "; sql += ", @USER_ID = " + _dao.FilterString(requestOTPModel.userId); sql += ", @OTP_CODE = " + _dao.FilterString(requestOTPModel.OTP); sql += ", @REQUEST_FOR = " + _dao.FilterString(requestOTPModel.requestFor); sql += ", @RECEIVER_ID = " + _dao.FilterString(requestOTPModel.receiverId); Log.DebugFormat("RequestOTP | SQL : {0}", sql); var _dbRes = _dao.ParseDbResult(sql); Log.Debug("RequestOTP | DB RESPONSE : " + JsonConvert.SerializeObject(_dbRes)); List successCode = new List { "0", "100", "103" }; return new JsonRxResponse { ErrorCode = successCode.Contains(_dbRes.ResponseCode) ? "0" : "1", Msg = _dbRes.Msg, Id = _dbRes.Id, Extra = _dbRes.Extra, Extra2 = _dbRes.Extra2, Extra3 = _dbRes.ResponseCode, }; //return new JsonRxResponse //{ // ErrorCode = _dbRes.ResponseCode, //Msg = _dbRes.Msg, //Extra = _dbRes.Id //}; } public JsonRxResponse GetNotifyInfo(string customerId) { var lang = Convert.ToString(CallContext.GetData(Constants.Language)); JsonRxResponse res = new JsonRxResponse(); var sql = "EXEC proc_getNotifyInfo @flag='notice'"; sql += " ,@customerId = " + _dao.FilterString(customerId); DataTable dt = _dao.ExecuteDataTable(sql); if (dt == null) { res.ErrorCode = "0"; res.Msg = "SUCCESS"; res.Data = null; } List getNotifiCationInfos = new List(); foreach (DataRow dr in dt.Rows) { GetNotifiCationInfo getNotifiCationInfo = new GetNotifiCationInfo() { rowId = dr["rowId"].ToString(), title = dr["title"].ToString(), createDate = dr["createDate"].ToString(), isRead = dr["isRead"].ToString(), type = dr["Type"].ToString(), extra = (dr["Type"].ToString() == "1" ? dr["sentId"].ToString() : "") }; getNotifiCationInfos.Add(getNotifiCationInfo); } var map = Utilities.GetLanguageMapping(RESPONSE_MSG.GET_NOTIFY_INFO_SUCCESS.ToString(), lang); res.ErrorCode = "0"; res.Msg = map.Message; res.Data = getNotifiCationInfos.ToArray(); // return res; return new JsonRxResponse { ErrorCode = res.ErrorCode, Msg = map.Message, Data = res.Data }; } public JsonRxResponse GetNotifyDetailInfo(string rowId) { var lang = Convert.ToString(CallContext.GetData(Constants.Language)); JsonRxResponse res = new JsonRxResponse(); string sql = $@"SELECT title, body ,createDate, isRead ,imageURL FROM pushNotificationHistroy WHERE rowId = {rowId}"; var dr = _dao.ExecuteDataRow(sql); if (dr == null) { res.ErrorCode = "0"; res.Msg = "SUCCESS"; res.Data = null; } GetNotifyCationDetailInfo getNotifiCationDetailInfo = new GetNotifyCationDetailInfo(); getNotifiCationDetailInfo.title = dr["title"].ToString(); getNotifiCationDetailInfo.body = dr["body"].ToString(); getNotifiCationDetailInfo.createDate = dr["createDate"].ToString(); if (dr["isRead"].ToString() == "0") { sql = $@"UPDATE pushNotificationHistroy SET isRead = 1 WHERE rowId={rowId}"; _dao.ExecuteDataset(sql); } getNotifiCationDetailInfo.imageURL = dr["imageURL"].ToString(); var map = Utilities.GetLanguageMapping(RESPONSE_MSG.GET_NOTIFY_DETAIL_INFO_SUCCESS.ToString(), lang); res.ErrorCode = "0"; res.Msg = map.Message; res.Data = getNotifiCationDetailInfo; return new JsonRxResponse { ErrorCode = res.ErrorCode, Msg = map.Message, Data = res.Data }; } public JsonRxResponse VerifyIdNumber(IDValidateModel iDValidate) { var sql = "EXEC proc_online_customer_login @flag='check-id' "; sql += ", @idnumber = " + _dao.FilterString(iDValidate.idnumber); sql += ", @idType = " + _dao.FilterString(iDValidate.type); Log.DebugFormat("VerifyIdNumber | SQL : {0}", sql); var _dbRes = _dao.ParseDbResult(sql); return new JsonRxResponse { ErrorCode = _dbRes.ResponseCode, Msg = _dbRes.Msg }; } public List GetPaymentMethod(string receiverId, string pcountryid) { List lst = new List(); var sql = "EXEC proc_countryRateMaster @flag='getListById'"; sql += ", @receiverId = " + _dao.FilterString(receiverId); //sql += ", @user = " + _dao.FilterString("mobileapi"); sql += ", @countryId = " + _dao.FilterString(pcountryid); var dt = _dao.ExecuteDataTable(sql); foreach (DataRow row in dt.Rows) { lst.Add(new KeyValues() { Key = row["detailTitle"].ToString(), Value = row["detailDesc"].ToString() }); } return lst; } public JsonRxResponse SubmitOTP(RequestOTPModel requestOTPModel) { var lang = Convert.ToString(CallContext.GetData(Constants.Language)); //MessageResponse msg = null; var sql = "EXEC mobile_proc_OTPRequest @flag='SUBMIT' "; sql += ", @USER_ID = " + _dao.FilterString(requestOTPModel.userId); sql += ", @OTP_CODE = " + _dao.FilterString(requestOTPModel.OTP); sql += ", @REQUEST_FOR = " + _dao.FilterString(requestOTPModel.requestFor); sql += ", @RECEIVER_ID = " + _dao.FilterString(requestOTPModel.receiverId); Log.DebugFormat("SubmitOTP | Lang {0} | SQL : {1}", lang, sql); var _dbRes = _dao.ParseDbResult(sql); JsonRxResponse _resp = new JsonRxResponse { ErrorCode = _dbRes.ResponseCode, Msg = _dbRes.Msg }; if (_dbRes.ResponseCode == "0") { _resp.Data = new { referenceId = _dbRes.Id }; } string enumString = string.Empty; if (_dbRes.ResponseCode.Equals("0")) { enumString = RESPONSE_MSG.SUBMIT_OTP_SUCCESS.ToString(); } else if (_dbRes.ResponseCode.Equals("1")) { enumString = RESPONSE_MSG.SUBMIT_OTP_FAIL_1.ToString(); } else if (_dbRes.ResponseCode.Equals("2")) { enumString = RESPONSE_MSG.SUBMIT_OTP_FAIL_2.ToString(); } else if (_dbRes.ResponseCode.Equals("3")) { enumString = RESPONSE_MSG.SUBMIT_OTP_FAIL_3.ToString(); } else if (_dbRes.ResponseCode.Equals("4")) { enumString = RESPONSE_MSG.SUBMIT_OTP_FAIL_4.ToString(); } var map = Utilities.GetLanguageMapping(enumString, lang); return new JsonRxResponse { ErrorCode = _dbRes.ResponseCode.Equals("0") ? "0" : "1", Msg = map.Message, Data = _dbRes }; // return new JsonRxResponse { ErrorCode = _dbRes.ResponseCode, Msg = _dbRes.Msg }; //return _resp; } public DataRow GetCustomerImageSavePath(string userId) { var sql = "EXEC proc_mobile_StaticData @flag= 'img-path'"; sql += ", @customerId = " + _dao.FilterString(userId); Log.DebugFormat("GetCustomerImageSavePath | SQL:{0}", sql); return _dao.ExecuteDataRow(sql); } public JsonRxResponse RegisterKYCExistingCustomer(CustomerKYCModel kyc) { //KycResponse kycResponse = null; var lang = Convert.ToString(CallContext.GetData(Constants.Language)); MessageResponse msg = null; JsonRxResponse jsonRx = new JsonRxResponse(); var moduleInBytes = Encoding.UTF8.GetBytes(Common.Helper.ConstantValues.ModuleName.kyc); var sql = "EXEC mobile_proc_customerMaster_V2 @flag='i-existing'"; sql += ", @username = " + _dao.FilterString(kyc.userId); sql += ", @type = " + _dao.FilterString(kyc.type); sql += ", @employeerName = " + _dao.FilterString(kyc.employeerName); sql += ", @monthlyIncome = " + _dao.FilterString(kyc.monthlyIncome); sql += ", @businessType = " + _dao.FilterString(kyc.businessType); sql += ", @mobile = " + _dao.FilterString(kyc.mobile); sql += ", @additionalAddress = N" + _dao.FilterString(kyc.additionalAddress); sql += ", @idType = " + _dao.FilterString(kyc.idType); sql += ", @additionalIdType = " + _dao.FilterString(kyc.additionalIdType); sql += ", @visaStatus = " + _dao.FilterString(kyc.visaStatus); //IMAGES sql += ", @idFront = " + _dao.FilterString(kyc.idFront); sql += ", @idBack = " + _dao.FilterString(kyc.idBack); sql += ", @idSide = " + _dao.FilterString(kyc.idSide); sql += ", @occupation = " + _dao.FilterString(kyc.occupation); sql += ", @purposeOfRegistration = " + _dao.FilterString(kyc.purposeOfRegistration); //OTHER FIELDS ADDED sql += ", @otherIdType = " + _dao.FilterString(kyc.otherIdType); sql += ", @otherOccupation = " + _dao.FilterString(kyc.otherOccupation); Log.DebugFormat("RegisterKYCExistingCustomer | SQL:{0}", sql); var dataTable = _dao.ParseDbResult(sql); jsonRx.SetResponse(dataTable.ResponseCode, dataTable.Msg, dataTable.Id); jsonRx.Extra = dataTable.Extra; // var res = _dao.ParseDbResult(sql); string enumString = string.Empty; if (dataTable.ResponseCode.Equals("0")) { enumString = RESPONSE_MSG.REGISTER_KYC_EXISTING_CUSTOMER_SUCCESS.ToString(); } else if (dataTable.ResponseCode.Equals("1")) { enumString = RESPONSE_MSG.REGISTER_KYC_EXISTING_CUSTOMER_FAIL_1.ToString(); } else if (dataTable.ResponseCode.Equals("2")) { enumString = RESPONSE_MSG.REGISTER_KYC_EXISTING_CUSTOMER_FAIL_2.ToString(); } var map = Utilities.GetLanguageMapping(enumString, lang); return new JsonRxResponse { ErrorCode = dataTable.ResponseCode.Equals("0") ? "0" : "1", Msg = map.Message.Replace("@mobile", dataTable.Extra) }; //return new JsonRxResponse { ErrorCode = dataTable.ResponseCode, Msg = dataTable.Msg }; //return jsonRx; } public JsonRxResponse RenewID(RenewID renewID) { var lang = Convert.ToString(CallContext.GetData(Constants.Language)); JsonRxResponse jsonRx = new JsonRxResponse(); var sql = "EXEC mobile_proc_customerMaster_V2 @flag= 'id-update'"; sql += ", @username = " + _dao.FilterString(renewID.userId); sql += ", @idFront = " + _dao.FilterString(renewID.idFront); sql += ", @idback = " + _dao.FilterString(renewID.idBack); Log.DebugFormat("RenewID | SQL : {0}", sql); var dataTable = _dao.ParseDbResult(sql); string enumString = string.Empty; if (dataTable.ResponseCode.Equals("0")) { enumString = RESPONSE_MSG.RENEWID_SUCCESS.ToString(); } var map = Utilities.GetLanguageMapping(enumString, lang); return new JsonRxResponse { ErrorCode = dataTable.ResponseCode, Msg = map.Message, Id = dataTable.Id }; //jsonRx.SetResponse(dataTable.ResponseCode, dataTable.Msg, dataTable.Id); //jsonRx.Extra = dataTable.Extra; //return jsonRx; } public JsonRxResponse DepositSlip(DepositSlip depoSlip) { var lang = Convert.ToString(CallContext.GetData(Constants.Language)); JsonRxResponse jsonRx = new JsonRxResponse(); var sql = "EXEC proc_depositSlipUpload @flag= 'upload-deposit-slip'"; sql += ", @username = " + _dao.FilterString(depoSlip.UserId); sql += ", @slip = " + _dao.FilterString(depoSlip.Slip); sql += ", @amount = " + _dao.FilterString(depoSlip.Amount); sql += ", @remarks = " + _dao.FilterString(depoSlip.Remarks); sql += ", @fileDescription = " + _dao.FilterString(MimeMapping.GetMimeMapping(depoSlip.Slip)); Log.DebugFormat("DepositSlip | SQL : {0}", sql); var dataTable = _dao.ParseDbResult(sql); string enumString = string.Empty; if (dataTable.ResponseCode.Equals("0")) { enumString = RESPONSE_MSG.RENEWID_SUCCESS.ToString(); } var map = Utilities.GetLanguageMapping(enumString, lang); return new JsonRxResponse { ErrorCode = dataTable.ResponseCode, Msg = map.Message, Id = dataTable.Id }; //jsonRx.SetResponse(dataTable.ResponseCode, dataTable.Msg, dataTable.Id); //jsonRx.Extra = dataTable.Extra; //return jsonRx; } public DataRow checkAdditionalId(string kyc) { var sql = "EXEC proc_mobile_StaticData @flag='additional-Id'"; sql += ", @additionalIdType = " + _dao.FilterString(kyc); Log.DebugFormat("checkAdditionalId | SQL:{0}", sql); return _dao.ExecuteDataRow(sql); } //public DataSet StaticQueryAddress() //{ // var sql = "EXEC proc_mobile_StaticData @flag='Query-Address'"; // return _dao.ExecuteDataset(sql); //} public JsonRxResponse RegisterKYC(CustomerKYCModel kyc) { //KycResponse kycResponse = null; var lang = Convert.ToString(CallContext.GetData(Constants.Language)); JsonRxResponse jsonRx = new JsonRxResponse(); var moduleInBytes = Encoding.UTF8.GetBytes(Common.Helper.ConstantValues.ModuleName.kyc); var sql = "EXEC mobile_proc_customerMaster_V2 @flag='i'"; sql += ", @username = " + _dao.FilterString(kyc.userId); sql += ", @type = " + _dao.FilterString(kyc.type); sql += ", @employeerName = " + _dao.FilterString(kyc.employeerName); sql += ", @monthlyIncome = " + _dao.FilterString(kyc.monthlyIncome); sql += ", @businessType = " + _dao.FilterString(kyc.businessType); sql += ", @mobile = " + _dao.FilterString(kyc.mobile); //sql += ", @additionalAddress = N" + _dao.FilterString(kyc.additionalAddress); sql += ", @idType = " + _dao.FilterString(kyc.idType); sql += ", @idTypeNumber = " + _dao.FilterString(kyc.idNumber); sql += ", @idStartDate = " + _dao.FilterString(kyc.idStartDate); sql += ", @idEndDate = " + _dao.FilterString(kyc.idExpiryDate); sql += ", @idIssuingCountry = " + _dao.FilterString(kyc.idIssuingCountry); sql += ", @additionalIdType = " + _dao.FilterString(kyc.additionalIdType); //IMAGES sql += ", @idFront = " + _dao.FilterString(kyc.idFront); sql += ", @idBack = " + _dao.FilterString(kyc.idBack); sql += ", @idSide = " + _dao.FilterString(kyc.idSide); sql += ", @additionalId = " + _dao.FilterString(kyc.additionalId); sql += ", @additionalIdBack = " + _dao.FilterString(kyc.additionalIdBack); sql += ", @facePicture = " + _dao.FilterString(kyc.facePicture); sql += ", @occupation = " + _dao.FilterString(kyc.occupation); sql += ", @purposeOfRegistration = " + _dao.FilterString(kyc.purposeOfRegistration); //OTHER FIELDS ADDED sql += ", @otherIdType = " + _dao.FilterString(kyc.otherIdType); sql += ", @otherOccupation = " + _dao.FilterString(kyc.otherOccupation); sql += ", @rType = " + _dao.FilterString(kyc.RegistrationType); sql += ", @trustDocId = " + _dao.FilterString(kyc.TrustDocId); Log.DebugFormat("RegisterKYC | SQL : {0}", sql); var dataTable = _dao.ParseDbResult(sql); jsonRx.SetResponse(dataTable.ResponseCode, dataTable.Msg, dataTable.Id); jsonRx.Extra = dataTable.Extra; //var res = _dao.ParseDbResult(sql); return new JsonRxResponse { ErrorCode = dataTable.ResponseCode, Msg = dataTable.Msg }; //return jsonRx; } public StaticData LoadFormStaticData(string type) { StaticData s = new StaticData(); var sql = "EXEC proc_mobile_StaticData @flag=" + _dao.FilterString(type); Log.DebugFormat("LoadFormStaticData | SQL : {0}", sql); var ds = _dao.ExecuteDataset(sql); if (ds == null) { return null; } List ls = new List(); if (ds.Tables.Count == 6) { var cdt = ds.Tables[0]; foreach (DataRow dr in cdt.Rows) { Country c = new Country(); c.Id = Convert.ToString(dr["countryId"]); c.Name = Convert.ToString(dr["country"]); c.Code = Convert.ToString(dr["Code"]); c.IsProvienceReq = Convert.ToString(dr["IsProvienceReq"]); var lsp = new List(); var pdt = ds.Tables[1]; var prov = from cc in pdt.AsEnumerable() where cc.Field("countryId") == c.Id select new Province { id = cc.Field("id"), text = cc.Field("text") }; foreach (var drp in prov) { Province p = new Province(); p.id = Convert.ToString(drp.id); p.text = Convert.ToString(drp.text); var lsd = new List(); var ddt = ds.Tables[2]; var dist = from dd in ddt.AsEnumerable() where dd.Field("provinceId") == p.id select new { id = dd.Field("id"), text = dd.Field("text") }; foreach (var drd in dist) { District d = new District(); d.id = Convert.ToString(drd.id); d.text = Convert.ToString(drd.text); lsd.Add(d); } p.District = lsd; lsp.Add(p); } c.Provinces = lsp; ls.Add(c); } s.Country = ls; var tdt = ds.Tables[3]; var tr = from cc in tdt.AsEnumerable() select new TransferReason { id = cc.Field("id"), text = cc.Field("text") }; s.TransferReasons = tr.ToList(); var rtd = ds.Tables[4]; var rt = from cc in rtd.AsEnumerable() select new Relation { id = cc.Field("id"), text = cc.Field("text") }; s.Relations = rt.ToList(); var rtrid = ds.Tables[5]; var rtid = from cc in rtrid.AsEnumerable() select new IdType { id = cc.Field("id"), text = cc.Field("text") }; s.ReceiverIdType = rtid.ToList(); return s; } return null; } public List GetReceiversByCustomer(string customer, string search) { List ls = new List(); var sql = "EXEC mobile_proc_receiverSetup @flag='s_all' "; sql += ", @userId = " + _dao.FilterString(customer); sql += ", @search = " + _dao.FilterString(search); Log.DebugFormat("GetReceiversByCustomer | SQL:{0}", sql); var ds = _dao.ExecuteDataTable(sql); if (ds == null) { return null; } //if (ds.Rows.Count < 1) //{ // return null; //} foreach (DataRow dt in ds.Rows) { var fileInBytes = Encoding.UTF8.GetBytes(dt["dpUrl"].ToString()); var userIdInBytes = Encoding.UTF8.GetBytes(dt["userId"].ToString()); Receivers receiver = new Receivers() { recipientId = dt["recipientId"].ToString(), firstName = dt["firstname"].ToString(), middleName = dt["middlename"].ToString(), lastName = dt["lastname"].ToString(), city = dt["city"].ToString(), state = dt["state"].ToString(), stateId = dt["stateId"].ToString(), district = dt["district"].ToString(), districtId = dt["districtId"].ToString(), address = dt["address"].ToString(), country = dt["country"].ToString(), countryId = dt["countryId"].ToString(), relation = dt["relation"].ToString(), relationId = dt["relationId"].ToString(), mobileNumber = dt["mobile"].ToString(), email = dt["email"].ToString(), reason = dt["transferReason"].ToString(), reasonId = dt["reasonId"].ToString(), dpUrl = ApplicationConfig.GetRootURL() + "handler/docs.ashx?img=" + Convert.ToBase64String(fileInBytes) + "&userId=" + Convert.ToBase64String(userIdInBytes), userId = dt["userId"].ToString(), countryCode = dt["countryCode"].ToString(), idType = dt["idType"].ToString(), idNumber = dt["idNumber"].ToString() }; ls.Add(receiver); } return ls; } public Receivers GetReceiverDetail(string receiverId) { var sql = "EXEC mobile_proc_receiverSetup @flag='s_id' "; sql += ", @recipientId = " + _dao.FilterString(receiverId); Log.DebugFormat("GetReceiverDetail | SQL:{0}", sql); var dt = _dao.ExecuteDataRow(sql); if (dt == null) { return null; } var fileInBytes = Encoding.UTF8.GetBytes(dt["dpUrl"].ToString()); var userIdInBytes = Encoding.UTF8.GetBytes(dt["userId"].ToString()); Receivers receiver = new Receivers() { recipientId = dt["recipientId"].ToString(), firstName = dt["firstname"].ToString(), middleName = dt["middlename"].ToString(), lastName = dt["lastname"].ToString(), city = dt["city"].ToString(), state = dt["state"].ToString(), stateId = dt["stateId"].ToString(), district = dt["district"].ToString(), districtId = dt["districtId"].ToString(), address = dt["address"].ToString(), country = dt["country"].ToString(), countryId = dt["countryId"].ToString(), relation = dt["relation"].ToString(), relationId = dt["relationId"].ToString(), mobileNumber = dt["mobile"].ToString(), email = dt["email"].ToString(), reason = dt["transferReason"].ToString(), reasonId = dt["reasonId"].ToString(), dpUrl = ApplicationConfig.GetRootURL() + "handler/docs.ashx?img=" + Convert.ToBase64String(fileInBytes) + "&userId=" + Convert.ToBase64String(userIdInBytes), userId = dt["userId"].ToString(), countryCode = dt["countryCode"].ToString() }; return receiver; } public JsonRxResponse ChangeTxnPin(ChangeTxnPinModel changeTxnPin) { var lang = Convert.ToString(CallContext.GetData(Constants.Language)); var sql = "EXEC mobile_proc_customerMaster_V2 @flag='c-pin' "; sql += ", @username = " + _dao.FilterString(changeTxnPin.UserId); sql += ", @currentPin = " + _dao.FilterString(changeTxnPin.CurrentPin); sql += ", @newPin = " + _dao.FilterString(changeTxnPin.NewPin); sql += ", @confirmNewPin = " + _dao.FilterString(changeTxnPin.ConfirmNewPin); sql += ", @type = " + _dao.FilterString(changeTxnPin.Type); Log.DebugFormat("ChangeTxnPin | SQL : {0}", sql); var res = _dao.ParseDbResult(sql); string enumString = string.Empty; //msg = new MessageResponse { Message = res.Msg }; if (res.ResponseCode.Equals("0")) { enumString = RESPONSE_MSG.CHANGE_TXN_PIN_SUCCESS.ToString(); } else if (res.ResponseCode.Equals("1")) { enumString = RESPONSE_MSG.CHANGE_TXN_PIN_FAIL_1.ToString(); } else if (res.ResponseCode.Equals("2")) { enumString = RESPONSE_MSG.CHANGE_TXN_PIN_FAIL_2.ToString(); } else if (res.ResponseCode.Equals("3")) { enumString = RESPONSE_MSG.CHANGE_TXN_PIN_FAIL_3.ToString(); } else if (res.ResponseCode.Equals("4")) { enumString = RESPONSE_MSG.CHANGE_TXN_PIN_FAIL_4.ToString(); } var map = Utilities.GetLanguageMapping(enumString, lang); return new JsonRxResponse { ErrorCode = res.ResponseCode.Equals("0") ? "0" : "1", Msg = map.Message }; } public JsonRxResponse ChangeSettings(ChangeSettingModel changeSettings) { string enumString = string.Empty; var lang = Convert.ToString(CallContext.GetData(Constants.Language)); var sql = "EXEC mobile_proc_customerMaster_V2 @flag='update-settings' "; sql += ", @username = " + _dao.FilterString(changeSettings.UserId); sql += ", @SettingType = " + _dao.FilterString(changeSettings.SettingType.ToString()); sql += ", @type = " + _dao.FilterString(changeSettings.Flag.ToString()); sql += ", @customerPassword = " + _dao.FilterString(changeSettings.Password); sql += ", @token = " + _dao.FilterString(changeSettings.guid.ToString()); //sql += ", @confirmNewPin = " + _dao.FilterString(changeSettings.ConfirmNewPin); Log.DebugFormat("ChangeSettings | lang {0} | SQL : {1}", lang, sql); var res = _dao.ParseDbResult(sql); if (res.ResponseCode.Equals("0")) { enumString = RESPONSE_MSG.CHANGE_SETTINGS_SUCCESS.ToString(); } else if (res.ResponseCode.Equals("1")) { enumString = RESPONSE_MSG.CHANGE_SETTINGS_FAIL_1.ToString(); } else if (res.ResponseCode.Equals("2")) { enumString = RESPONSE_MSG.CHANGE_SETTINGS_FAIL_2.ToString(); } else if (res.ResponseCode.Equals("3")) { enumString = RESPONSE_MSG.CHANGE_SETTINGS_FAIL_3.ToString(); } var map = Utilities.GetLanguageMapping(enumString, lang); return new JsonRxResponse { ErrorCode = res.ResponseCode.Equals("0") ? "0" : "1", Msg = map.Message, Id = res.Id }; //return new JsonRxResponse { ErrorCode = res.ResponseCode, Msg = res.Msg, Id = res.Id }; } public JsonRxResponse ChangePasswordAndTxnPin(ChangePasswordAndTxnPinModel changePasswordAndTxnPin) { var lang = Convert.ToString(CallContext.GetData(Constants.Language)); MessageResponse msg = null; var sql = "EXEC mobile_proc_customerMaster_V2 @flag='c-pin-pwd' "; sql += ", @username = " + _dao.FilterString(changePasswordAndTxnPin.UserId); sql += ", @currentPin = " + _dao.FilterString(changePasswordAndTxnPin.CurrentPin); sql += ", @newPin = " + _dao.FilterString(changePasswordAndTxnPin.NewPin); sql += ", @confirmNewPin = " + _dao.FilterString(changePasswordAndTxnPin.ConfirmNewPin); sql += ", @currentPassword = " + _dao.FilterString(changePasswordAndTxnPin.CurrentPassword); sql += ", @NewPassword = " + _dao.FilterString(changePasswordAndTxnPin.NewPassword); sql += ", @ConfirmNewPassword = " + _dao.FilterString(changePasswordAndTxnPin.ConfirmNewPassword); Log.DebugFormat("ChangeTxnPin | SQL : {0}", sql); var res = _dao.ParseDbResult(sql); string enumString = string.Empty; if (res.ResponseCode.Equals("0")) { enumString = RESPONSE_MSG.CHANGE_PASSWORD_AND_TXN_PIN_SUCCESS.ToString(); } else if (res.ResponseCode.Equals("1")) { enumString = RESPONSE_MSG.CHANGE_PASSWORD_AND_TXN_PIN_FAIL_1.ToString(); } else if (res.ResponseCode.Equals("2")) { enumString = RESPONSE_MSG.CHANGE_PASSWORD_AND_TXN_PIN_FAIL_2.ToString(); } else if (res.ResponseCode.Equals("3")) { enumString = RESPONSE_MSG.CHANGE_PASSWORD_AND_TXN_PIN_FAIL_3.ToString(); } else if (res.ResponseCode.Equals("4")) { enumString = RESPONSE_MSG.CHANGE_PASSWORD_AND_TXN_PIN_FAIL_4.ToString(); } else if (res.ResponseCode.Equals("5")) { enumString = RESPONSE_MSG.CHANGE_PASSWORD_AND_TXN_PIN_FAIL_5.ToString(); } else if (res.ResponseCode.Equals("6")) { enumString = RESPONSE_MSG.CHANGE_PASSWORD_AND_TXN_PIN_FAIL_6.ToString(); } else if (res.ResponseCode.Equals("7")) { enumString = RESPONSE_MSG.CHANGE_PASSWORD_AND_TXN_PIN_FAIL_7.ToString(); } var map = Utilities.GetLanguageMapping(enumString, lang); return new JsonRxResponse { ErrorCode = res.ResponseCode.Equals("0") ? "0" : "1", Msg = map.Message, Data = new MessageResponse() { Message = map.Message } }; } public Receivers SaveReceiver(ReceiverModel register, string userId) { Receivers receiver = null; var sql = "EXEC mobile_proc_receiverSetup "; if (!string.IsNullOrEmpty(register.Id)) { sql += " @flag = 'u'"; sql += ", @recipientId = " + _dao.FilterString(register.Id); } else { sql += " @flag = 'i'"; } sql += ", @userId = " + _dao.FilterString(userId); sql += ", @firstName = " + _dao.FilterString(register.FirstName); sql += ", @middleName = " + _dao.FilterString(register.MiddleName); sql += ", @lastName = " + _dao.FilterString(register.LastName); sql += ", @country = " + _dao.FilterString(register.Country); sql += ", @address = " + _dao.FilterString(register.Address); sql += ", @state = " + _dao.FilterString(register.State); sql += ", @district = " + _dao.FilterString(register.District); sql += ", @city = " + _dao.FilterString(register.City); sql += ", @email = " + _dao.FilterString(register.Email); sql += ", @mobile = " + _dao.FilterString(register.MobileNo); sql += ", @relation = " + _dao.FilterString(register.Relation); sql += ", @purpose = " + _dao.FilterString(register.TransferReason); sql += ", @idType = " + _dao.FilterString(register.IdType); sql += ", @idNumber = " + _dao.FilterString(register.IdNumber); Log.DebugFormat("SaveReceiver | SQL : {0}", sql); var dt = _dao.ExecuteDataRow(sql); if (dt == null) { return null; } if (!Convert.ToString(dt["errorCode"]).Equals("0")) { receiver = new Receivers { ErrorCode = "1", Msg = Convert.ToString(dt["msg"]) }; return receiver; } var fileInBytes = Encoding.UTF8.GetBytes(dt["dpUrl"].ToString()); var userIdInBytes = Encoding.UTF8.GetBytes(dt["userId"].ToString()); receiver = new Receivers() { ErrorCode = "0", recipientId = dt["recipientId"].ToString(), firstName = dt["firstname"].ToString(), middleName = dt["middlename"].ToString(), lastName = dt["lastname"].ToString(), city = dt["city"].ToString(), state = dt["state"].ToString(), stateId = dt["stateId"].ToString(), district = dt["district"].ToString(), districtId = dt["districtId"].ToString(), address = dt["address"].ToString(), country = dt["country"].ToString(), countryId = dt["countryId"].ToString(), relation = dt["relation"].ToString(), relationId = dt["relationId"].ToString(), mobileNumber = dt["mobile"].ToString(), email = dt["email"].ToString(), reason = dt["transferReason"].ToString(), reasonId = dt["reasonId"].ToString(), dpUrl = ApplicationConfig.GetRootURL() + "handler/docs.ashx?img=" + Convert.ToBase64String(fileInBytes) + "&userId=" + Convert.ToBase64String(userIdInBytes), userId = dt["userId"].ToString(), countryCode = dt["countryCode"].ToString() }; return receiver; } public JsonRxResponse RemoveReceiver(string userId, string receiverId) { var lang = Convert.ToString(CallContext.GetData(Constants.Language)); var sql = "EXEC mobile_proc_receiverSetup @flag='d' "; sql += ", @userId = " + _dao.FilterString(userId); sql += ", @recipientId = " + _dao.FilterString(receiverId); Log.DebugFormat("RemoveReceiver | SQL : {0}", sql); var res = _dao.ParseDbResult(sql); //return new JsonRxResponse { ErrorCode = res.ResponseCode, Msg = res.Msg, Id = receiverId }; var map = Utilities.GetLanguageMapping(RESPONSE_MSG.REMOVE_RECEIVER_SUCCESS.ToString(), lang); return new JsonRxResponse { ErrorCode = res.ResponseCode, Msg = map.Message }; } public KycStaticData LoadKycStaticData(string type) { KycStaticData kycData = new KycStaticData(); var sql = "EXEC proc_mobile_StaticData @flag=" + _dao.FilterString(type); Log.DebugFormat("LoadKycStaticData | SQL : {0}", sql); var ds = _dao.ExecuteDataset(sql); if (ds == null) { return null; } if (ds.Tables.Count == 6) { var nativeCountry = ds.Tables[0]; var ncr = from nc in nativeCountry.AsEnumerable() select new NativeCountry { id = nc.Field("id").ToString(), text = nc.Field("text"), code = nc.Field("Code") }; kycData.NativeCountry = ncr.ToList(); var city = ds.Tables[1]; var cit = from pr in city.AsEnumerable() select new City { id = pr.Field("id").ToString(), text = pr.Field("text") }; kycData.City = cit.ToList(); var occupation = ds.Tables[2]; var occr = from occ in occupation.AsEnumerable() select new Occuption { id = occ.Field("id").ToString(), text = occ.Field("text") }; kycData.Occupation = occr.ToList(); var bank = ds.Tables[3]; var bkr = from bk in bank.AsEnumerable() select new PrimaryBank { id = bk.Field("id").ToString(), text = bk.Field("text") }; kycData.Bank = bkr.ToList(); var idType = ds.Tables[4]; var vitr = from vit in idType.AsEnumerable() select new IdType { id = vit.Field("id").ToString(), text = vit.Field("text") }; kycData.IdType = vitr.ToList(); var sourceOfFund = ds.Tables[5]; var src = from srcc in sourceOfFund.AsEnumerable() select new SourceOfFund { id = srcc.Field("id").ToString(), text = srcc.Field("text") }; kycData.SourceOfFund = src.ToList(); return kycData; } return null; } public TransactionResponse GenerateReceipt(string tranId, string notice) { var lang = Convert.ToString(CallContext.GetData(Constants.Language)); JsonRxResponse res = new JsonRxResponse(); var sql = "EXEC proc_online_sendIntlReceipt @flag = 'receipt'"; sql += ", @tranId = " + _dao.FilterString(tranId); // sql += ", @notice = " + _dao.FilterString(notice); Log.DebugFormat("GenerateReceipt | SQL:{0}", sql); DataSet ds = _dao.ExecuteDataset(sql); DataRow eRow = ds.Tables[0].Rows[0]; if (eRow["ErrorCode"].ToString() != "0") { return null; } else if (ds.Tables.Count >= 1 && ds.Tables[0].Rows.Count > 0) { DataRow sRow = ds.Tables[1].Rows[0]; if (notice == "Y") { string sql1 = $@"SELECT isRead FROM pushNotificationHistroy WHERE sentId = {tranId}"; var dr = _dao.ExecuteDataRow(sql1); if (dr["isRead"].ToString() == "0") { sql = $@"UPDATE pushNotificationHistroy SET isRead = 1 WHERE sentId={tranId}"; _dao.ExecuteDataset(sql); } } TransactionResponse transactionResponse = new TransactionResponse() { //payMode = sRow["PaymentMode"].ToString(), // Main Information (top of page) controlNo = sRow["controlNo"].ToString(), trnsDate = Convert.ToString(sRow["createdDate"]), trnId = sRow["tranId"].ToString(), //Load Receiver Information rFirstName = sRow["rFirstName"].ToString(), rMiddleName = sRow["rMiddleName"].ToString(), rLastName = sRow["rLastName"].ToString(), rAddress = sRow["rAddress"].ToString(), rCountryName = sRow["rCountryName"].ToString(), rContactNo = sRow["rContactNo"].ToString(), rCity = sRow["rCity"].ToString(), rEmail = sRow["rEmail"].ToString(), relWithSender = sRow["relWithSender"].ToString(), rState = sRow["rState"].ToString(), // Transaction Details payoutCountry = sRow["pCountry"].ToString(), trnDate = Convert.ToString(sRow["createdDate"]), pAmount = GetStatic.ShowDecimal(sRow["pAmt"].ToString()) + " " + sRow["payoutCurr"].ToString(), payOutMode = sRow["PaymentMode"].ToString(), accountNo = sRow["accountNo"].ToString(), payoutBankBranch = sRow["pBranchName"].ToString(), pAgentBank = sRow["pAgent"].ToString() ?? "[ANY WHERE]", collAmount = GetStatic.ShowDecimal1(sRow["cAmt"].ToString()) + " " + sRow["collCurr"].ToString(), exRate = sRow["exRate"].ToString(), serviceCharge = GetStatic.ShowDecimal1(sRow["serviceCharge"].ToString()) + " " + sRow["collCurr"].ToString(), payOutAmount = GetStatic.ShowDecimal(sRow["pAmt"].ToString()) + " " + sRow["payoutCurr"].ToString(), couponName = sRow["couponName"].ToString(), discountType = sRow["discountType"].ToString(), discountValue = sRow["discountValue"].ToString(), discountPercent = sRow["discountPercent"].ToString(), tranStatus = sRow["tranStatus"].ToString(), rewardPoints = GetStatic.ShowDecimal1(sRow["rewardPoints"].ToString()), ColorIcon = GetColor(sRow["PayStatus"].ToString()), SenderFullName = sRow["senderName"].ToString(), PaymentDetails = new PaymentDetails() { AccountName = "IME LONDON", AccountNo = "00000151", BankName = "Clear bank", Instruction = "Payment Reference Should be your name . Should you require any assitance, IME team is happy to help. You can track from Home ", TotalToPay = GetStatic.ShowDecimal(sRow["cAmt"].ToString()) + " " + sRow["collCurr"].ToString(), Reference = sRow["senderName"].ToString(), SortCode = "04-06-93" } }; double discountval = 0, discountpercent = 0; if (double.TryParse(transactionResponse.discountValue, out discountval)) { transactionResponse.discountValue = Math.Round(discountval, 0).ToString(); } if (double.TryParse(transactionResponse.discountPercent, out discountpercent)) { transactionResponse.discountPercent = Math.Round(discountpercent, 0).ToString(); } res.ErrorCode = "0"; res.Msg = "SUCCESS"; var map = Utilities.GetLanguageMapping(RESPONSE_MSG.GENERATE_RECEIPT_SUCCESS.ToString(), lang); return transactionResponse; } return null; } private string GetColor(string status) { if (status.Equals("AWAITING PAYMENT") || status.Equals("PENDING")) { return "Blue"; } else if (status.Equals("PROCESSING")) { return "Brown"; } else if (status.Equals("PAID")) { return "Green"; } else if (status.Equals("CANCELLED")) { return "Red"; } else return "Blue"; } public JsonRxResponse GetNotificationList(string customerId) { var lang = Convert.ToString(CallContext.GetData(Constants.Language)); JsonRxResponse res = new JsonRxResponse(); var sql = "EXEC proc_getNotifyInfo @flag='notification'"; sql += ", @customerId = " + _dao.FilterString(customerId); DataTable dt = _dao.ExecuteDataTable(sql); if (dt == null) { res.ErrorCode = "0"; res.Msg = "SUCCESS"; res.Data = null; } List getNotifiCationListInfos = new List(); foreach (DataRow dr in dt.Rows) { GetNotifiCationListInfo getNotifiCationListInfo = new GetNotifiCationListInfo(); { getNotifiCationListInfo.rowId = dr["rowId"].ToString(); getNotifiCationListInfo.customerId = dr["customerId"].ToString(); getNotifiCationListInfo.title = dr["title"].ToString(); getNotifiCationListInfo.body = dr["body"].ToString(); getNotifiCationListInfo.createDate = dr["createDate"].ToString(); getNotifiCationListInfo.category = dr["category"].ToString(); getNotifiCationListInfo.url = dr["url"].ToString(); getNotifiCationListInfo.isClickable = dr["isClickable"].ToString(); getNotifiCationListInfo.isRead = dr["isRead"].ToString(); getNotifiCationListInfo.type = dr["type"].ToString(); } getNotifiCationListInfos.Add(getNotifiCationListInfo); } var map = Utilities.GetLanguageMapping(RESPONSE_MSG.GET_NOTIFY_DETAIL_INFO_SUCCESS.ToString(), lang); res.ErrorCode = "0"; res.Msg = map.Message; res.Data = getNotifiCationListInfos.ToArray(); return new JsonRxResponse { ErrorCode = res.ErrorCode, Msg = map.Message, Data = res.Data }; } public JsonRxResponse UpdateNotification(string rowId) { var lang = Convert.ToString(CallContext.GetData(Constants.Language)); JsonRxResponse res = new JsonRxResponse(); var sql = "EXEC proc_getNotifyInfo @flag='notification-detail'"; sql += ", @rowId = " + _dao.FilterString(rowId); //string sql = $@"SELECT customerId, title ,createDate, category, link, isRead , FROM pushNotificationHistroy WHERE type='0' AND rowId = {rowId}"; var dr = _dao.ExecuteDataRow(sql); if (dr == null) { res.ErrorCode = "0"; res.Msg = "SUCCESS"; res.Data = null; } GetNotifiCationListInfo getNotifiCationListInfo = new GetNotifiCationListInfo(); getNotifiCationListInfo.rowId = dr["rowId"].ToString(); getNotifiCationListInfo.customerId = dr["customerId"].ToString(); getNotifiCationListInfo.title = dr["title"].ToString(); getNotifiCationListInfo.body = dr["body"].ToString(); getNotifiCationListInfo.createDate = dr["createDate"].ToString(); getNotifiCationListInfo.isRead = dr["isRead"].ToString(); getNotifiCationListInfo.category = dr["category"].ToString(); getNotifiCationListInfo.url = dr["url"].ToString(); //if (dr["isRead"].ToString() == "0") //{ // sql = $@"UPDATE pushNotificationHistroy SET isRead = 1 WHERE rowId={rowId}"; // _dao.ExecuteDataset(sql); //} var map = Utilities.GetLanguageMapping(RESPONSE_MSG.GET_NOTIFY_DETAIL_INFO_SUCCESS.ToString(), lang); res.ErrorCode = "0"; res.Msg = map.Message; res.Data = getNotifiCationListInfo; return new JsonRxResponse { ErrorCode = res.ErrorCode, Msg = map.Message, Data = res.Data }; } public List GetTransactionHistory(DateFilterParams search, string userId) { List liTranHistoryResponse = null; var sql = "Exec mobile_proc_TranHistory @flag='tran-history'"; sql += ", @userId=" + _dao.FilterString(userId); sql += ", @fromDate=" + _dao.FilterString(search.FromDate); sql += ", @toDate=" + _dao.FilterString(search.ToDate); Log.DebugFormat("GetTransactionHistory | SQL : {0}", sql); var dt = _dao.ExecuteDataTable(sql); if (dt == null) { return null; } //else if (dt.Rows.Count < 1) //{ // return null; //} liTranHistoryResponse = new List(); foreach (DataRow dr in dt.Rows) { TranHistoryResponse tranHistoryResponse = new TranHistoryResponse() { User = Convert.ToString(dr["userId"]), TranId = Convert.ToString(dr["tranId"]), ControlNo = Convert.ToString(dr["controlNo"]), CollAmt = Convert.ToString(dr["collAmount"]), PayoutAmt = Utilities.ShowDecimal(Convert.ToString(dr["payoutAmt"])), PCurr = Convert.ToString(dr["pCurr"]), CollCurr = Convert.ToString(dr["collCurr"]), PayStatus = Convert.ToString(dr["payStatus"]), PayoutMode = Convert.ToString(dr["payoutMode"]), SendDate = Convert.ToString(dr["sendDate"]), PaidDate = Convert.ToString(dr["paidDate"]), DisplayActions = dr["DisplayActions"].ToString() // PayoutAgent = Convert.ToString(dr["PayoutAgent"]), }; liTranHistoryResponse.Add(tranHistoryResponse); } return liTranHistoryResponse; } //added mobileNo and nativeCountry fields public JsonRxResponse RegisterCustomer(CustomerRegisterParameters registerParam) { var sql = "EXEC JsonRx_Proc_UserRegistration @flag='sign-up' "; sql += ", @username = " + _dao.FilterString(registerParam.Username); sql += ", @password = " + _dao.FilterString(registerParam.Password); sql += ", @mobile = " + _dao.FilterString(registerParam.MobileNumber); sql += ", @nativeCountry = " + _dao.FilterString(registerParam.NativeCountry); sql += ", @clientId = " + _dao.FilterString(registerParam.ClientId); sql += ", @imei = " + _dao.FilterString(registerParam.uuid); sql += ", @appVersion = " + _dao.FilterString(registerParam.AppVersion); sql += ", @phoneBrand = " + _dao.FilterString(registerParam.phoneBrand); sql += ", @phoneOs = " + _dao.FilterString(registerParam.phoneOs); sql += ", @osVersion = " + _dao.FilterString(registerParam.osVersion); sql += ", @deviceId = " + _dao.FilterString(registerParam.fcmId); sql += ", @dob = " + _dao.FilterString(registerParam.Dob); Log.DebugFormat("RegisterCustomer | SQL : {0}", sql); var res = _dao.ParseDbResult(sql); return new JsonRxResponse { ErrorCode = res.ResponseCode, Msg = res.Msg, Id = registerParam.Username }; } //added mobileNo and nativeCountry fields public JsonRxResponse OldUserAccessRequest(OldUserAccessRequestModel oldUserAccessRequest) { var lang = Convert.ToString(CallContext.GetData(Constants.Language)); var sql = "EXEC JsonRx_Proc_UserRegistration_V2 @flag='sign-up-pre-old-cust' "; sql += ", @mobile = " + _dao.FilterString(oldUserAccessRequest.MobileNumber); sql += ", @idNumber = " + _dao.FilterString(oldUserAccessRequest.IdNumber); sql += ", @dob = " + _dao.FilterString(oldUserAccessRequest.Dob); Log.DebugFormat("OldUserAccessRequest | SQL : {0}", sql); var res = _dao.ParseDbResult(sql); string enumString = string.Empty; if (res.ResponseCode.Equals("0")) { enumString = RESPONSE_MSG.OLD_USER_ACCESS_REQUEST_SUCCESS.ToString(); } else if (res.ResponseCode.Equals("1")) { enumString = RESPONSE_MSG.OLD_USER_ACCESS_REQUEST_FAIL_1.ToString(); } else if (res.ResponseCode.Equals("2")) { enumString = RESPONSE_MSG.OLD_USER_ACCESS_REQUEST_FAIL_2.ToString(); } else if (res.ResponseCode.Equals("3")) { enumString = RESPONSE_MSG.OLD_USER_ACCESS_REQUEST_FAIL_3.ToString(); } var map = Utilities.GetLanguageMapping(enumString, lang); return new JsonRxResponse { ErrorCode = res.ResponseCode.Equals("0") ? "0" : "1", Msg = map.Message, Id = res.Id, Extra = res.Extra }; //return new JsonRxResponse { ErrorCode = res.ResponseCode, Msg = res.Msg, Id = res.Id, Extra = res.Extra }; } public JsonRxResponse OldUserRegister(OldUserRegisterModel oldUserRegister) { var lang = Convert.ToString(CallContext.GetData(Constants.Language)); var sql = "EXEC JsonRx_Proc_UserRegistration_V2 @flag='sign-up-v2-old-cust' "; sql += ", @username = " + _dao.FilterString(oldUserRegister.UserId); sql += ", @password = " + _dao.FilterString(oldUserRegister.Password); sql += ", @referenceId = " + _dao.FilterString(oldUserRegister.ReferenceId); sql += ", @txnPin = " + _dao.FilterString(oldUserRegister.TxnPin); sql += ", @clientId = " + _dao.FilterString(oldUserRegister.ClientId); sql += ", @uuid = " + _dao.FilterString(oldUserRegister.uuid); sql += ", @appVersion = " + _dao.FilterString(oldUserRegister.AppVersion); sql += ", @phoneBrand = " + _dao.FilterString(oldUserRegister.phoneBrand); sql += ", @phoneOs = " + _dao.FilterString(oldUserRegister.phoneOs); sql += ", @fcmId = " + _dao.FilterString(oldUserRegister.fcmId); sql += ", @osVersion = " + _dao.FilterString(oldUserRegister.osVersion); sql += ", @referralCode = " + _dao.FilterString(oldUserRegister.referralcode); Log.DebugFormat("OldUserRegister | SQL : {0}", sql); var res = _dao.ParseDbResult(sql); string enumString = string.Empty; if (res.ResponseCode.Equals("0")) { enumString = RESPONSE_MSG.OLD_USER_REGISTER_SUCCESS.ToString(); } else if (res.ResponseCode.Equals("1")) { enumString = RESPONSE_MSG.OLD_USER_REGISTER_FAIL_1.ToString(); } else if (res.ResponseCode.Equals("2")) { enumString = RESPONSE_MSG.OLD_USER_REGISTER_FAIL_2.ToString(); } else if (res.ResponseCode.Equals("3")) { enumString = RESPONSE_MSG.OLD_USER_REGISTER_FAIL_3.ToString(); } else if (res.ResponseCode.Equals("4")) { enumString = RESPONSE_MSG.OLD_USER_REGISTER_FAIL_4.ToString(); } else if (res.ResponseCode.Equals("5")) { enumString = RESPONSE_MSG.OLD_USER_REGISTER_FAIL_5.ToString(); } else if (res.ResponseCode.Equals("6")) { enumString = RESPONSE_MSG.OLD_USER_REGISTER_FAIL_6.ToString(); } else if (res.ResponseCode.Equals("7")) { enumString = RESPONSE_MSG.OLD_USER_REGISTER_FAIL_7.ToString(); } var map = Utilities.GetLanguageMapping(enumString, lang); return new JsonRxResponse { ErrorCode = res.ResponseCode.Equals("0") ? "0" : "1", Msg = map.Message, Id = res.Id, Extra = res.Extra }; //return new JsonRxResponse { ErrorCode = res.ResponseCode, Msg = res.Msg, Id = res.Id, Extra = res.Extra }; } public JsonRxResponse NewUserRegister(NewUserRegisterModel newUserRegister) { var lang = Convert.ToString(CallContext.GetData(Constants.Language)); var sql = "EXEC JsonRx_Proc_UserRegistration_V2 @flag='sign-up-v2-new-cust' "; sql += ", @idNumber = " + _dao.FilterString(""); sql += ", @nativeCountry = " + _dao.FilterString(newUserRegister.Nationality); sql += ", @referralCode = " + _dao.FilterString(newUserRegister.ReferralCode); sql += ", @username = " + _dao.FilterString(newUserRegister.UserId); sql += ", @password = " + _dao.FilterString(newUserRegister.Password); sql += ", @clientId = " + _dao.FilterString(newUserRegister.ClientId); sql += ", @uuid = " + _dao.FilterString(newUserRegister.uuid); sql += ", @appVersion = " + _dao.FilterString(newUserRegister.AppVersion); sql += ", @phoneBrand = " + _dao.FilterString(newUserRegister.phoneBrand); sql += ", @phoneOs = " + _dao.FilterString(newUserRegister.phoneOs); sql += ", @fcmId = " + _dao.FilterString(newUserRegister.fcmId); sql += ", @osVersion = " + _dao.FilterString(newUserRegister.osVersion); sql += ", @fullName = " + _dao.FilterString(newUserRegister.FullName); sql += ", @dob = " + _dao.FilterString(newUserRegister.DOB); sql += ", @mobile = " + _dao.FilterString(newUserRegister.MobileNumber); sql += ", @postalCode = " + _dao.FilterString(newUserRegister.PostalCode); sql += ", @address1 = " + _dao.FilterString(newUserRegister.Address1); sql += ", @address2 = " + _dao.FilterString(newUserRegister.Address2); sql += ", @city = " + _dao.FilterString(newUserRegister.City); sql += ", @gender = " + _dao.FilterString(newUserRegister.Gender); if (!string.IsNullOrEmpty(newUserRegister.FullName)) { var str = newUserRegister.FullName.Trim().Split(' '); if (str.Length.Equals(2)) { sql += ", @FirstName = " + _dao.FilterString(str[0]); sql += ", @LastName = " + _dao.FilterString(str[1]); } else if (str.Length > 2) { sql += ", @FirstName = " + _dao.FilterString(str[0]); sql += ", @MiddleName = " + _dao.FilterString(str[1]); var ls = ""; for (int i = 2; i < str.Length; i++) { ls = (ls + str[i] + " ").Trim(); } sql += ", @LastName = " + _dao.FilterString(ls); } else { sql += ", @FirstName = " + _dao.FilterString(newUserRegister.FullName); } } Log.DebugFormat("NewUserRegister | SQL : {0}", sql); var res = _dao.ParseDbResult(sql); string enumString = string.Empty; if (res.ResponseCode.Equals("0")) { enumString = RESPONSE_MSG.NEW_USER_REGISTER_SUCCESS.ToString(); } else if (res.ResponseCode.Equals("1")) { enumString = RESPONSE_MSG.NEW_USER_REGISTER_FAIL_1.ToString(); } else if (res.ResponseCode.Equals("2")) { enumString = RESPONSE_MSG.NEW_USER_REGISTER_FAIL_2.ToString(); } else if (res.ResponseCode.Equals("3")) { enumString = RESPONSE_MSG.NEW_USER_REGISTER_FAIL_3.ToString(); } else if (res.ResponseCode.Equals("8")) { enumString = RESPONSE_MSG.NEW_USER_REGISTER_FAIL_8.ToString(); } var map = Utilities.GetLanguageMapping(enumString, lang); return new JsonRxResponse { ErrorCode = res.ResponseCode.Equals("0") ? "0" : "1", Msg = map.Message, Id = res.Id, Extra = res.Extra }; //return new JsonRxResponse { ErrorCode = res.ResponseCode, Msg = res.Msg, Id = res.Id, Extra = res.Extra }; } public UserDetails GetUserDetails(string email) { var sql = "EXEC GetUserInfo @flag='basic-reg' "; sql += ", @emailId = " + _dao.FilterString(email); var row = _dao.ExecuteDataRow(sql); UserDetails userDetails = new UserDetails(); if (row != null) { userDetails.FullName = row["fullName"].ToString(); userDetails.CustomerId = row["customerid"].ToString(); userDetails.MembershipId = row["membershipid"].ToString(); userDetails.FirstName = row["Firstname"].ToString(); userDetails.Mobile = row["mobile"].ToString(); userDetails.MiddleName = row["middleName"].ToString(); userDetails.LastName = row["Lastname1"].ToString(); userDetails.Email = row["email"].ToString(); userDetails.Address = row["address"].ToString(); userDetails.RegisteredDate = row["createdDate"].ToString(); userDetails.TotalPoints = row["TotalPoints"].ToString(); userDetails.RegPoints = row["RegPoints"].ToString(); userDetails.TranPoints = row["TranPoints"].ToString(); } return userDetails; } public JsonRxResponse CustomerInfoAgree(String username, string flag = "agree") { var lang = Convert.ToString(CallContext.GetData(Constants.Language)); JsonRxResponse jsonRx = new JsonRxResponse(); var sql = "EXEC JsonRx_Proc_UserRegistration @flag='" + flag + "' "; sql += ", @username = " + _dao.FilterString(username); Log.DebugFormat("CustomerInfoAgree | SQL : {0}", sql); var res = _dao.ParseDbResult(sql); string enumString = string.Empty; if (res.ResponseCode.Equals("0")) { enumString = RESPONSE_MSG.REGISTER_CUSTOMER_SUCCESS.ToString(); } else if (res.ResponseCode.Equals("1")) { enumString = RESPONSE_MSG.REGISTER_CUSTOMER_FAIL.ToString(); } var map = Utilities.GetLanguageMapping(enumString, lang); return new JsonRxResponse { ErrorCode = res.ResponseCode.Equals("0") ? "0" : "1", Msg = res.Msg, Id = username, Extra = res.Extra, Extra2 = res.Extra2, Extra3 = res.Extra3 }; //return new JsonRxResponse { ErrorCode = res.ResponseCode, Msg = res.Msg }; //return new JsonRxResponse { ErrorCode = res.ResponseCode, Msg = res.Msg, Id = username }; } public JsonRxResponse CheckInfoAgree(String userName) { JsonRxResponse jsonRx = new JsonRxResponse(); var sql = "EXEC mobile_proc_userLogin @flag='check-agree' "; sql += ", @username = " + _dao.FilterString(userName); Log.Debug("CheckInfoAgree | SQL : " + sql); var res = _dao.ExecuteDataset(sql); try { List pdfDetails = new List(); if (res.Tables[0].Rows.Count == 0) { Log.DebugFormat("pdf count is 0"); jsonRx.ErrorCode = "0"; jsonRx.Msg = "Don't have pdf List"; jsonRx.Data = new System.Collections.ArrayList(); return jsonRx; } var data = res.Tables[0].Rows[0]; if (data["ErrorCode"].ToString() != "0") { jsonRx.SetResponse(data["ErrorCode"].ToString(), data["MSG"].ToString(), data["Id"].ToString()); return jsonRx; } string currentpath = AppDomain.CurrentDomain.BaseDirectory; //var url = ApplicationConfig.ReadWebConfig("rootUrl", ""); foreach (DataRow row in res.Tables[0].Rows) { string imgtemppath = null, resultimgpath = null; string ipath = row["AgreePdfPath"].ToString(); if (String.IsNullOrEmpty(ipath) == false) { imgtemppath = ipath.Replace(currentpath, ""); resultimgpath = imgtemppath.Replace("\\", "/"); } pdfDetails.Add(new ResponsePdfDetail { pdfNo = row["rowId"].ToString(), pdfName = row["PdfName"].ToString(), pdfPath = resultimgpath }); } jsonRx.Id = userName; jsonRx.ErrorCode = "0"; jsonRx.Msg = "Get PDF List Success About Agree infomation"; jsonRx.Data = pdfDetails; return jsonRx; } catch (Exception ex) { Log.DebugFormat($"Exception : {ex.ToString()}"); jsonRx.ErrorCode = "1"; jsonRx.Msg = "Get PDF List Failed"; jsonRx.Data = ex.ToString(); return jsonRx; } } public JsonRxResponse ResetPassword(PasswordReset pwdReset) { var lang = Convert.ToString(CallContext.GetData(Constants.Language)); var sql = "EXEC JsonRx_Proc_UserRegistration @flag='pwd-reset' "; sql += ", @username = " + _dao.FilterString(pwdReset.Username); sql += ", @dob = " + _dao.FilterString(pwdReset.Dob); sql += ", @randomPassword = " + _dao.FilterString(pwdReset.RandomPassword); Log.DebugFormat("ResetPassword |language : {0} | SQL : {1}", lang, sql); var res = _dao.ParseDbResult(sql); string enumString = string.Empty; if (res.ResponseCode.Equals("0")) { enumString = RESPONSE_MSG.RESET_PASSWORD_SUCCESS.ToString(); } else if (res.ResponseCode.Equals("1")) { enumString = RESPONSE_MSG.RESET_PASSWORD_FAIL_1.ToString(); } else if (res.ResponseCode.Equals("2")) { enumString = RESPONSE_MSG.RESET_PASSWORD_FAIL_2.ToString(); } else if (res.ResponseCode.Equals("3")) { enumString = RESPONSE_MSG.RESET_PASSWORD_FAIL_3.ToString(); } var map = Utilities.GetLanguageMapping(enumString, lang); 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 }; } public JsonRxResponse RefreshCustomerInformation(UserModel user) { var lang = Convert.ToString(CallContext.GetData(Constants.Language)); JsonRxResponse jsonRx = new JsonRxResponse { ErrorCode = "1", Msg = "Failed" }; var sql = "EXEC mobile_proc_customerMaster @flag='refresh-customer-info'"; sql += ", @userName = " + _dao.FilterString(user.UserId); sql += ",@appVersion = " + _dao.FilterString(user.AppVersion); sql += ",@phoneBrand = " + _dao.FilterString(user.phoneBrand); sql += ",@phoneOS = " + _dao.FilterString(user.phoneOs); sql += ",@fcmId = " + _dao.FilterString(user.fcmId); sql += ",@osVersion = " + _dao.FilterString(user.osVersion); Log.DebugFormat("RefreshCustomerInformation | Lang {0} | SQL : {1}", lang, sql); var dataTable = _dao.ExecuteDataTable(sql); if (dataTable != null) { if (dataTable.Rows[0]["errorCode"].ToString() == "0") { var ios = ConfigurationManager.AppSettings["IosUpdate"].ToString().Split('-'); var iosInfo = ConfigurationManager.AppSettings["IosUpdateInfo"].ToString(); var android = ConfigurationManager.AppSettings["AndroidUpdate"].ToString().Split('-'); var androidInfo = ConfigurationManager.AppSettings["AndroidUpdateInfo"].ToString(); IList app = new List(); app.Add(new AppUpdate { OS = "IOS", Build = ios[0], Version = ios[1], Critical = ios[2], Info = iosInfo }); app.Add(new AppUpdate { OS = "ANDROID", Build = android[0], Version = android[1], Critical = android[2], Info = androidInfo }); var dpStr = Convert.ToString(dataTable.Rows[0]["dpUrl"]); var fileInBytes = Encoding.UTF8.GetBytes(Convert.ToString(dataTable.Rows[0]["dpUrl"])); var userIdInBytes = Encoding.UTF8.GetBytes(Convert.ToString(dataTable.Rows[0]["userId"])); var moduleInBytes = Encoding.UTF8.GetBytes("kyc"); try { var custResponse = new LoginResponse { ErrorCode = Convert.ToString(dataTable.Rows[0]["errorCode"]), userId = Convert.ToString(dataTable.Rows[0]["userId"]), senderId = Convert.ToString(dataTable.Rows[0]["SenderId"]), firstName = Convert.ToString(dataTable.Rows[0]["firstName"]), email = Convert.ToString(dataTable.Rows[0]["email"]), customerEmail = Convert.ToString(dataTable.Rows[0]["customerEmail"]), mobileNumber = Convert.ToString(dataTable.Rows[0]["phone"]), dob = Convert.ToString(dataTable.Rows[0]["dob"]), rewardPoint = Convert.ToString(dataTable.Rows[0]["rewardPoint"]), active = Convert.ToBoolean(dataTable.Rows[0]["active"]), kyc = Convert.ToBoolean(dataTable.Rows[0]["kyc"]), verified = Convert.ToBoolean(dataTable.Rows[0]["verified"]), walletNumber = Convert.ToString(dataTable.Rows[0]["walletNumber"]), availableBalance = Convert.ToString(dataTable.Rows[0]["availableBalance"]), primaryBankName = Convert.ToString(dataTable.Rows[0]["primaryBankName"]), cmRegistrationId = Convert.ToString(dataTable.Rows[0]["cmRegistrationId"]), dpUrl = !(string.IsNullOrEmpty(dpStr)) ? ApplicationConfig.GetRootURL() + "handler/docs.ashx?img=" + Convert.ToBase64String(fileInBytes) + "&userId=" + Convert.ToBase64String(userIdInBytes) + "&module=" + Convert.ToBase64String(moduleInBytes) : null, country = Convert.ToString(dataTable.Rows[0]["country"]), province = Convert.ToString(dataTable.Rows[0]["province"]), provinceId = Convert.ToString(dataTable.Rows[0]["provinceId"]), isReferred = Convert.ToBoolean(dataTable.Rows[0]["isReferred"]), sourceId = Convert.ToString(dataTable.Rows[0]["sourceId"]), countryCode = Convert.ToString(dataTable.Rows[0]["countryCode"]), yearlyLimit = Convert.ToString(dataTable.Rows[0]["yearlyLimit"]), pennyTestStatus = Convert.ToString(dataTable.Rows[0]["PennyTestStatus"]), accessTokenRegTime = Convert.ToString(dataTable.Rows[0]["accessTokenRegTime"]), accessTokenExpTime = Convert.ToString(dataTable.Rows[0]["accessTokenExpTime"]), redirectTo = Convert.ToString(dataTable.Rows[0]["redirectTo"]), referralCode = Convert.ToString(dataTable.Rows[0]["referelCode"]), agreeYn = Convert.ToString(dataTable.Rows[0]["agreeYn"]), isExistingCustomer = Convert.ToBoolean(dataTable.Rows[0]["isExistingCustomer"]), hasUpdatedDefaultCredentials = Convert.ToInt16(dataTable.Rows[0]["hasUpdatedDefaultCredentials"]), hasVerifiedOTP = Convert.ToBoolean(dataTable.Rows[0]["hasVerifiedOTP"]), IsBiometricLogin = Convert.ToBoolean(dataTable.Rows[0]["IsBiometricLogin"]), BiometricLoginType = Convert.ToString(dataTable.Rows[0]["BiometricLoginType"]), notificationCount = Convert.ToString(dataTable.Rows[0]["notificationCount"]), idExpiryDate = Convert.ToString(dataTable.Rows[0]["IDExpiryDate"]), IdStatus = Convert.ToString(dataTable.Rows[0]["idStatus"]), showInviteCode = Convert.ToString(dataTable.Rows[0]["showInviteCode"]), RewardPoints = Convert.ToString(dataTable.Rows[0]["RewardPoints"]), ResidenceType = Convert.ToString(dataTable.Rows[0]["ResidenceType"]), UseNFC = Convert.ToString(dataTable.Rows[0]["UseNFC"]), SelfieDocPath = Convert.ToString(dataTable.Rows[0]["SelfieDoc"]).Replace("////", "/"), KycVerified = Convert.ToBoolean(dataTable.Rows[0]["KycVerified"]), KycStatus = Convert.ToString(dataTable.Rows[0]["KycStatus"]), KycStatusMsg = Convert.ToString(dataTable.Rows[0]["KycStatusMsg"]), // IsForcedPwdchange = Convert.ToString(dataTable.Rows[0]["IsForcedPwdChange"]), appUpdate = app }; jsonRx.ErrorCode = "0"; jsonRx.Msg = "success"; jsonRx.Data = custResponse; if (custResponse.availableBalance == "000") { custResponse.availableBalance = "0"; } } catch (Exception ex) { throw; } return jsonRx; } else { jsonRx.ErrorCode = "999"; jsonRx.Msg = dataTable.Rows[0]["msg"].ToString(); jsonRx.Data = null; } } return jsonRx; } public List GetWalletStatement(DateFilterParams search, string userId) { WalletStatementResponse walletResponse = null; List lstWalletResponse = new List(); JsonRxResponse jsonRx = new JsonRxResponse(); var sql = "Exec mobile_proc_TranHistory @flag='tran-history'"; sql += ", @userId=" + _dao.FilterString(userId); sql += ", @fromDate=" + _dao.FilterString(search.FromDate); sql += ", @toDate=" + _dao.FilterString(search.ToDate); Log.DebugFormat("GetWalletStatement | SQL : {0}", sql); var dt = _dao.ExecuteDataTable(sql); if (dt == null || dt.Rows.Count == 0) { return null; } foreach (DataRow dr in dt.Rows) { WalletStatementResponse tranHistoryResponse = new WalletStatementResponse() { TranId = Convert.ToString(dr["tranId"]), ControlNo = Convert.ToString(dr["controlNo"]), CollAmt = Convert.ToString(dr["collAmount"]), PayoutAmt = Utilities.ShowDecimal(Convert.ToString(dr["payoutAmt"])), PCurr = Convert.ToString(dr["pCurr"]), CollCurr = Convert.ToString(dr["collCurr"]), PayStatus = Convert.ToString(dr["payStatus"]), PayoutMode = Convert.ToString(dr["payoutMode"]), TransactionDate = Convert.ToString(dr["sendDate"]), ReceiverName= Convert.ToString(dr["ReceiverName"]), PayoutCountry = Convert.ToString(dr["PayoutCountry"]), ColorCode = GetColorCode(dr["payStatus"].ToString()), TextCode = GetTextCode(dr["payStatus"].ToString()), }; lstWalletResponse.Add(tranHistoryResponse); } return lstWalletResponse; } private string GetColorCode(string status) { if (status.Equals("AWAITING PAYMENT") || status.Equals("PENDING")) { return "#514e82"; } else if (status.Equals("PROCESSING")) { return "#AF804F"; } else if (status.Equals("PAID")) { return "#2ED636"; } else if (status.Equals("CANCELLED")) { return "#FF0000"; } else return "#514e82"; } private string GetTextCode(string status) { if (status.Equals("AWAITING PAYMENT") || status.Equals("PENDING")) { return "#FFFFFF"; } else if (status.Equals("PROCESSING")) { return "#FFFFFF"; } else if (status.Equals("PAID")) { return "#000000"; } else if (status.Equals("CANCELLED")) { return "#000000"; } else return "#FFFFFF"; } public JsonRxResponse ChangePassword(ChangePassword changePwd) { var lang = Convert.ToString(CallContext.GetData(Constants.Language)); var sql = "EXEC mobile_proc_ChangePassword"; sql += " @username = " + _dao.FilterString(changePwd.UserId); sql += ", @oldPassword = " + _dao.FilterString(changePwd.OldPassword); sql += ", @newPassword = " + _dao.FilterString(changePwd.NewPassword); Log.DebugFormat("ChangePassword | lang | {0} | SQL:{1}", lang, sql); var res = _dao.ParseDbResult(sql); string enumString = string.Empty; if (res.ResponseCode.Equals("0")) { enumString = RESPONSE_MSG.CHANGE_PASSWORD_SUCCESS.ToString(); } else if (res.ResponseCode.Equals("1")) { enumString = RESPONSE_MSG.CHANGE_PASSWORD_FAIL_1.ToString(); } else if (res.ResponseCode.Equals("2")) { enumString = RESPONSE_MSG.CHANGE_PASSWORD_FAIL_2.ToString(); } var map = Utilities.GetLanguageMapping(enumString, lang); return new JsonRxResponse { ErrorCode = res.ResponseCode.Equals("0") ? "0" : "1", Msg = map.Message, Data = new MessageResponse() { Message = map.Message } }; } public List GetPaymentAccountsByCustomer(string customer) { var sql = "EXEC KFTC_LOG_CUSTOMER_INFO @flag = 's-send',@customerId =" + _dao.FilterString(customer); Log.DebugFormat("GetPaymentAccountsByCustomer | SQL : {0}", sql); var dt = _dao.ExecuteDataTable(sql); List _accountDetails = new List(); try { if (dt == null || dt.Rows.Count == 0) { return _accountDetails; } foreach (DataRow item in dt.Rows) { var accName = ""; if (item["isApproved"].ToString() == "N") { accName = item["walletName"].ToString() + item["autoDebit"].ToString() + " (Unapproved)"; } else { accName = item["walletName"].ToString() + item["autoDebit"].ToString(); } accName += "(" + item["accountNumMasked"].ToString() + ")"; AccountDetails _account = new AccountDetails(); _account.KftcAccountId = item["RowId"].ToString(); _account.Type = item["type"].ToString(); _account.WalletName = item["walletName"].ToString(); _account.BankName = item["walletName"].ToString(); _account.AccountNumMasked = item["accountNumMasked"].ToString(); _accountDetails.Add(_account); } return _accountDetails; } catch (Exception ex) { Log.Error("Exception tracked : " + ex.Message, ex); return _accountDetails; } } public string GetPayoutPartner(string pCountry, string serviceType) { string sql = "SELECT TOP 1 AgentId FROM TblPartnerwiseCountry(NOLOCK) WHERE IsActive = 1 "; sql += " AND CountryId =" + _dao.FilterString(pCountry); sql += " AND ISNULL(PaymentMethod," + serviceType + ")=" + _dao.FilterString(serviceType); return _dao.GetSingleResult(sql); } public JsonRxResponse RegisterCustomer_V3(CustomerRegisterParameters registerModel) { var sql = "EXEC JsonRx_Proc_UserRegistration @flag='sign-up-V2' "; sql += ", @username = " + _dao.FilterString(registerModel.Username); sql += ", @password = " + _dao.FilterString(registerModel.Password); sql += ", @mobile = " + _dao.FilterString(registerModel.MobileNumber); sql += ", @nativeCountry = " + _dao.FilterString(registerModel.NativeCountry); sql += ", @clientId = " + _dao.FilterString(registerModel.ClientId); sql += ", @imei = " + _dao.FilterString(registerModel.uuid); sql += ", @appVersion = " + _dao.FilterString(registerModel.AppVersion); sql += ", @phoneBrand = " + _dao.FilterString(registerModel.phoneBrand); sql += ", @phoneOs = " + _dao.FilterString(registerModel.phoneOs); sql += ", @osVersion = " + _dao.FilterString(registerModel.osVersion); sql += ", @deviceId = " + _dao.FilterString(registerModel.fcmId); sql += ", @referenceId = " + _dao.FilterString(registerModel.referenceId); Log.DebugFormat("RegisterCustomer | SQL : {0}", sql); var res = _dao.ExecuteDataset(sql); JsonRxResponse jsonRx = new JsonRxResponse(); try { List pdfDetails = new List(); if (res.Tables[0].Rows.Count == 0) { Log.DebugFormat("pdf count is 0"); jsonRx.ErrorCode = "0"; jsonRx.Msg = "Don't have pdf List"; jsonRx.Data = new System.Collections.ArrayList(); return jsonRx; } if (res.Tables[0].Rows[0]["ErrorCode"].ToString() != "0") { var row = res.Tables[0].Rows[0]; jsonRx.SetResponse(row["ErrorCode"].ToString(), row["Msg"].ToString(), row["Id"].ToString()); return jsonRx; } string currentpath = AppDomain.CurrentDomain.BaseDirectory; var url = ApplicationConfig.ReadWebConfig("rootUrl", ""); foreach (DataRow row in res.Tables[0].Rows) { string imgtemppath = null, resultimgpath = null; string ipath = row["AgreePdfPath"].ToString(); if (String.IsNullOrEmpty(ipath) == false) { imgtemppath = ipath.Replace(currentpath, ""); resultimgpath = imgtemppath.Replace("\\", "/"); } pdfDetails.Add(new ResponsePdfDetail { pdfNo = row["rowId"].ToString(), pdfName = row["PdfName"].ToString(), pdfPath = resultimgpath }); } jsonRx.Id = registerModel.Username; jsonRx.ErrorCode = "0"; jsonRx.Msg = "Registration completed successfully"; jsonRx.Data = pdfDetails; return jsonRx; } catch (Exception ex) { Log.DebugFormat($"Exception : {ex.ToString()}"); jsonRx.ErrorCode = "1"; jsonRx.Msg = "Registration Failed"; jsonRx.Data = ex.ToString(); return jsonRx; } } public JsonRxResponse RegisterKYC_V3(CustomerKYC kyc) { //KycResponse kycResponse = null; JsonRxResponse jsonRx = new JsonRxResponse(); var moduleInBytes = Encoding.UTF8.GetBytes(Common.Helper.ConstantValues.ModuleName.kyc); var sql = "EXEC mobile_proc_customerMaster @flag='i-V2'"; sql += ", @username = " + _dao.FilterString(kyc.userId); sql += ", @firstName = " + _dao.FilterString(kyc.firstName); sql += ", @nickName = " + _dao.FilterString(kyc.nickName); sql += ", @email = " + _dao.FilterString(kyc.email); sql += ", @gender= " + _dao.FilterString(kyc.gender); sql += ", @dateOfBirth = " + _dao.FilterString(kyc.dateOfBirth); sql += ", @address = " + _dao.FilterString(kyc.address); sql += ", @city = " + _dao.FilterString(kyc.city); sql += ", @province = " + _dao.FilterString(kyc.provinceId); sql += ", @occupation = " + _dao.FilterString(kyc.occupation); sql += ", @primaryBankName = " + _dao.FilterString(kyc.primaryBankName); sql += ", @primaryAccountNumber = " + _dao.FilterString(kyc.primaryAccountNumber); sql += ", @verificationIdType = " + _dao.FilterString(kyc.verificationIdType); sql += ", @verificationIdNumber = " + _dao.FilterString(kyc.verificationIdNumber); sql += ", @issueDate = " + _dao.FilterString(kyc.issueDate); sql += ", @expiryDate = " + _dao.FilterString(kyc.expiryDate); sql += ", @sourceOfFund = " + _dao.FilterString(kyc.sourceOfFund); sql += ", @regIdcardFrontUrl = " + _dao.FilterString(kyc.regIdcardFrontUrl); sql += ", @regIdcardBackUrl = " + _dao.FilterString(kyc.regIdcardBackUrl); sql += ", @passbookUrl = " + _dao.FilterString(kyc.passbookUrl); sql += ", @passportUrl = " + _dao.FilterString(kyc.passportUrl); sql += ", @selfieUrl = " + _dao.FilterString(kyc.selfieUrl); sql += ", @referralCode = " + _dao.FilterString(kyc.referralCode); Log.DebugFormat("RegisterKYC | SQL : {0}", sql); var dataTable = _dao.ParseDbResult(sql); jsonRx.SetResponse(dataTable.ResponseCode, dataTable.Msg, dataTable.Id); jsonRx.Extra = dataTable.Extra; return jsonRx; } public JsonRxResponse RealtimeValidation(RealtimeValidationModel model) { var lang = Convert.ToString(CallContext.GetData(Constants.Language)); JsonRxResponse jsonRx = new JsonRxResponse(); var sql = "EXEC mobile_proc_realtime_validation @flag='validation'"; sql += ", @username = " + _dao.FilterString(model.Username); sql += ", @idNumber = " + _dao.FilterString(model.IdNumber); sql += ", @idType = " + _dao.FilterString(model.IdType); Log.DebugFormat("RealtimeValidation | Lang : {0} | SQL : {1}", lang, sql); var dt = _dao.ParseDbResult(sql); string enumString = string.Empty; if (dt.ResponseCode == "1") { enumString = RESPONSE_MSG.VALIDATION_FAIL_1.ToString(); } else if (dt.ResponseCode == "2") { enumString = RESPONSE_MSG.VALIDATION_FAIL_2.ToString(); } var map = Utilities.GetLanguageMapping(enumString, lang); return new JsonRxResponse { ErrorCode = dt.ResponseCode.Equals("0") ? "0" : "1", Msg = map.Message, Id = dt.Id, Extra = dt.Extra }; //jsonRx.SetResponse(dt.ResponseCode, dt.Msg, dt.Id); //jsonRx.Extra = dt.Extra; //return jsonRx; } public JsonRxResponse GetCDDI(string userId) { JsonRxResponse jsonRx = new JsonRxResponse(); try { var sql = "EXEC proc_mobile_StaticData @flag='cddi' "; sql += ", @customerId = " + _dao.FilterString(userId); Log.DebugFormat("GetCDDI | SQL : {0}", sql); var dataSet = _dao.ExecuteDataset(sql); if (dataSet.Tables[0].Rows.Count == 0) { Log.DebugFormat("No Data found for GetCDDI"); jsonRx.ErrorCode = "1"; jsonRx.Msg = "No CDDI data found"; return jsonRx; } if (dataSet.Tables.Count > 1) { CDDIResponseModel _cddi = new CDDIResponseModel(); /* Purpose of Remittance*/ var Reason = from cc in dataSet.Tables[1].AsEnumerable() select new PurposeOfRemittance { id = cc.Field("id").ToString(), text = cc.Field("text") }; _cddi.PurposeOfRemittance = Reason.ToList(); /* Source of Fund*/ var Source = from cc in dataSet.Tables[0].AsEnumerable() select new SourceOfFund { id = cc.Field("id").ToString(), text = cc.Field("text") }; _cddi.UserId = userId; _cddi.SourceOfFund = Source.ToList(); jsonRx.ErrorCode = "0"; jsonRx.Msg = "Success"; jsonRx.Data = _cddi; return jsonRx; } else { jsonRx.ErrorCode = "1"; jsonRx.Msg = "No data found"; jsonRx.Data = null; return jsonRx; } } catch (Exception e) { Log.DebugFormat($"Exception : {e.ToString()}"); jsonRx.ErrorCode = "1"; jsonRx.Msg = "Failed"; return jsonRx; } } public JsonRxResponse DynamicReceiverField(DynamicReceiverRequest dynamicReceiverRequest, string customerId) { var lang = Convert.ToString(CallContext.GetData(Constants.Language)); JsonRxResponse jsonRx = new JsonRxResponse(); try { var sql = "EXEC PROC_MOBILE_DYNAMIC_RECEIVERDETAILS "; sql += " @countryId = " + _dao.FilterString(dynamicReceiverRequest.CountryId); sql += ", @serviceType = " + _dao.FilterString(dynamicReceiverRequest.ServiceType); sql += ", @customerId = " + _dao.FilterString(customerId); Log.DebugFormat("DynamicReceiverField | SQL : {0}", sql); var dataSet = _dao.ExecuteDataset(sql); //List rowsIos = new List(); //if (dynamicReceiverRequest.deviceType.ToLower().Equals("ios")) //{ // var sql1 = "EXEC PROC_MOBILE_BRANCH"; // sql1 += " @countryId = " + _dao.FilterString(dynamicReceiverRequest.CountryId); // sql1 += ", @serviceType = " + _dao.FilterString(dynamicReceiverRequest.ServiceType); // sql1 += ", @customerId = " + _dao.FilterString(customerId); // Log.DebugFormat("DynamicReceiverField GetBranches| SQL : {0}", sql1); // var dataset1 = _dao.ExecuteDataset(sql1); // if (dataset1 != null && dataset1.Tables.Count > 0) // { // rowsIos = dataset1.Tables[0].Rows.Cast().ToList(); // } //} List dymanicFields = new List(); DynamicStaticData s = new DynamicStaticData(); if (dataSet.Tables[0].Rows.Count == 0) { Log.DebugFormat("No Data found for DynamicReceiver field"); jsonRx.ErrorCode = "1"; // jsonRx.Msg = "No DynamicReceiver field List"; //return jsonRx; // var ErrorCode = dataSet.Tables[0].Rows[0]["ErrorCode"].ToString(); var map = Utilities.GetLanguageMapping(RESPONSE_MSG.DYNAMIC_RECEIVER_FIELD_FAIL.ToString(), lang); return new JsonRxResponse { ErrorCode = "1", Msg = map.Message }; } if (dataSet.Tables.Count > 1) { //dynamic field foreach (DataRow row in dataSet.Tables[0].Rows) { dymanicFields.Add(new DymanicField { Field = row["field"].ToString(), FieldRequired = row["fieldRequired"].ToString(), MinLength = Convert.ToInt16(row["minfieldLength"].ToString()), MaxLength = Convert.ToInt16(row["maxfieldLength"].ToString()), Keyboard = row["KeyWord"].ToString() }); } /* TransferReason Start*/ var Reason = from cc in dataSet.Tables[1].AsEnumerable() select new TransferReason { id = cc.Field("id").ToString(), text = cc.Field("text") }; s.TransferReasons = Reason.ToList(); //var reasonList = from b in dataSet.Tables[1].AsEnumerable() select new { Reason = b.Field("Reason") }; //var Reason = reasonList.ToList().Select(x => x.Reason).ToArray(); /* Relation Start*/ var Relation = from cc in dataSet.Tables[2].AsEnumerable() select new Relation { id = cc.Field("id").ToString(), text = cc.Field("text") }; s.Relations = Relation.ToList(); //var relationList = from b in dataSet.Tables[2].AsEnumerable() select new { Relation = b.Field("Relation") }; //var Relation = relationList.ToList().Select(x => x.Relation).ToArray(); /* IdType Start*/ var IdType = from cc in dataSet.Tables[3].AsEnumerable() select new IdType { id = cc.Field("id").ToString(), text = cc.Field("text") }; s.ReceiverIdType = IdType.ToList(); //var idTypeList = from b in dataSet.Tables[3].AsEnumerable() select new { IdType = b.Field("IdType") }; //var IdType = idTypeList.ToList().Select(x => x.IdType).ToArray(); //var bankNameList = from b in dataSet.Tables[4].AsEnumerable() select new { BankName = b.Field("BankName") }; //var Bank = bankNameList.ToList().Select(x => x.BankName).ToArray(); var Proviences = from cc in dataSet.Tables[4].AsEnumerable() select new Provinces { id = cc.Field("id").ToString(), text = cc.Field("text") }; s.Provinces = Proviences.ToList(); var lsp = new List(); foreach (var drp in s.Provinces) { Provinces p = new Provinces(); p.id = Convert.ToString(drp.text); p.text = Convert.ToString(drp.text); var lsd = new List(); var ddt = dataSet.Tables[5]; var dist = from dd in ddt.AsEnumerable() where dd.Field("provinceId") == drp.id select new { id = dd.Field("id"), text = dd.Field("text") }; foreach (var drd in dist) { District d = new District(); d.id = Convert.ToString(drd.text); d.text = Convert.ToString(drd.text); lsd.Add(d); } p.District = lsd; lsp.Add(p); } s.Provinces = lsp; var payMode = dataSet.Tables[7]; List pmodeLs = new List(); if (payMode.Rows.Count > 0) { foreach (DataRow dr in payMode.Rows) { var currs = Convert.ToString(dr["PayCurrency"]); var lscurr = new List(); if (!string.IsNullOrEmpty(currs)) { string[] str = currs.Split(',').SelectDistinct(); foreach (string ss in str) { lscurr.Add(ss); } } var pMode = new DPayoutmode { Id = Convert.ToString(dr["ModeId"]) , Mode = Convert.ToString(dr["Mode"]) , PayoutPartner = Convert.ToString(dr["PayoutPartner"]) , PayCurrency = lscurr, Bankrequired = Convert.ToString(dr["BankRequired"]) }; var banks = dataSet.Tables[8]; var bankList = new List(); foreach (DataRow drr in banks.Rows) { var b = new Banks { PayoutPartner = Convert.ToString(drr["payoutPartner"]), Id = Convert.ToString(drr["Id"]), Name = Convert.ToString(drr["Name"]), Code = Convert.ToString(drr["Code"]), BranchRequired = Convert.ToString(drr["BranchRequired"]), IsAccountRequired = Convert.ToString(drr["IsAccountRequired"]), IsAccountValidation = Convert.ToString(drr["IsAccountValidation"]) }; var durrBank = dataSet.Tables[9]; var branchList = new List(); foreach (DataRow drBranch in durrBank.Rows) { if (Convert.ToString(drBranch["BankId"]).Equals(b.Id)) { branchList.Add(new BankBranch { Id = Convert.ToString(drBranch["Id"]), Name = Convert.ToString(drBranch["Name"]) }); } } if (b.BranchRequired.Equals("True")) { b.BranchList = branchList; } var durr = dataSet.Tables[10]; List pC = new List(); foreach (DataRow drrr in durr.Rows) { if (Convert.ToString(drrr["Id"]).Equals(b.Id)) { pC.Add(Convert.ToString(drrr["Currency"])); } } b.PayCurrency = pC; bankList.Add(b); } s.BankList = bankList; } } var payoutPartner = Convert.ToString(dataSet.Tables[11].Rows[0][0]); jsonRx.ErrorCode = "0"; jsonRx.Msg = "Success"; jsonRx.Data = new { PayoutPartner = payoutPartner, DynamicField = dymanicFields, Relations = s.Relations, Reason = s.TransferReasons, ReceiverIdType = s.ReceiverIdType, Provinces = s.Provinces, BankList = s.BankList }; } else { jsonRx.ErrorCode = "1"; jsonRx.Msg = "No data found"; jsonRx.Data = null; } return jsonRx; } catch (Exception e) { Log.DebugFormat($"Exception | DynamicReceiverField : {e.ToString()}"); jsonRx.ErrorCode = "1"; jsonRx.Msg = "Failed"; return jsonRx; } } public JsonRxResponse GetReceiverInformation(string customerId) { var lang = Convert.ToString(CallContext.GetData(Constants.Language)); JsonRxResponse jsonRx = new JsonRxResponse(); try { var sql = "EXEC PROC_MOBILE_RECEIVER_INFORMATION"; sql += " @flag = " + _dao.FilterString("receiver-info"); sql += ", @customerId = " + _dao.FilterString(customerId); Log.DebugFormat("GetReceiverInformation | SQL : {0}", sql); var dataSet = _dao.ExecuteDataset(sql); List rim = new List(); var map = Utilities.GetLanguageMapping(RESPONSE_MSG.GET_RECEIVER_INFORMATION_FAIL_1.ToString(), lang); if (dataSet.Tables[0].Rows.Count == 0) { Log.DebugFormat("ReceiverInfoModel field count is 0"); jsonRx.ErrorCode = "0"; //jsonRx.Msg = "No ReceiverInfoModel field List"; jsonRx.Msg = map.Message; jsonRx.Data = new System.Collections.ArrayList(); return jsonRx; } foreach (DataRow row in dataSet.Tables[0].Rows) { var s = GetReceiverInfoModel(row); rim.Add(s); } jsonRx.ErrorCode = "0"; jsonRx.Msg = "Success"; jsonRx.Data = rim; return jsonRx; } catch (Exception e) { Log.DebugFormat($"Exception : {e.ToString()}"); jsonRx.ErrorCode = "1"; //jsonRx.Msg = "Failed"; var map = Utilities.GetLanguageMapping(RESPONSE_MSG.GET_RECEIVER_INFORMATION_FAIL_2.ToString(), lang); jsonRx.Msg = map.Message; return jsonRx; } } private ReceiverInfoModel GetReceiverInfoModel(DataRow row) { ReceiverInfoBranch b = null; ReceiverInfoAgent a = null; ReceiverInfoPaymentmethod p = null; if (!string.IsNullOrWhiteSpace(Convert.ToString(row["branchId"]))) { b = new ReceiverInfoBranch(); b.id = Convert.ToString(row["branchId"]); b.name = Convert.ToString(row["branchName"]); b.localizedName = Convert.ToString(row["branchLocalizedName"]); } //if (!string.IsNullOrWhiteSpace(Convert.ToString(row["bankId"]))) //{ a = new ReceiverInfoAgent(); a.id = Convert.ToString(row["bankId"]); a.name = Convert.ToString(row["bankName"]); a.localizedName = Convert.ToString(row["bankLocalizedName"]); a.accountNo = Convert.ToString(row["accountNo"]); a.currency = string.IsNullOrWhiteSpace(Convert.ToString(row["bankCurrency"])) ? null : Convert.ToString(row["bankCurrency"]).Split(','); a.branch = b; //} p = new ReceiverInfoPaymentmethod(); //Commented by arjun if (!string.IsNullOrWhiteSpace(Convert.ToString(row["paymentMethodId"]))) { var country = Convert.ToString(row["country"]) ?? "English"; //var path = GetStatic.ReadWebConfig("ServiceType_Resource", ""); //var text = File.ReadAllText(path); //List sd = JsonConvert.DeserializeObject>(text); //var idx = sd.FindIndex(x => x.countryName.ToLower() == country.ToLower()); //var data = new ServiceTypeDetails(); //if (idx < 0) //{ // data = sd[sd.FindIndex(x => x.countryCode == "en")]; //} //else //{ // data = sd[idx]; //} p.id = Convert.ToString(row["paymentMethodId"]); p.name = Convert.ToString(row["paymentMethodName"]); //added by arjun p.localizedName = Convert.ToString(row["paymentMethodName"]); //if (Convert.ToString(row["paymentMethodName"]).ToLower().Equals("Cash Payment".ToLower())) //{ // p.localizedName = data.cashPayment; //} //else if (Convert.ToString(row["paymentMethodName"]).ToLower().Equals("Bank Deposit".ToLower())) //{ // p.localizedName = data.bankDeposit; //} //else if (Convert.ToString(row["paymentMethodName"]).ToLower().Equals("Mobile Wallet".ToLower())) //{ // p.localizedName = data.mobileWallet; //} //else if (Convert.ToString(row["paymentMethodName"]).ToLower().Equals("Home Delivery".ToLower())) //{ // p.localizedName = data.homeDelivery; //} //else if (Convert.ToString(row["paymentMethodName"]).ToLower().Equals("Card Payment".ToLower())) //{ // p.localizedName = data.cardPayment; //} p.currency = string.IsNullOrWhiteSpace(Convert.ToString(row["paymentMethodCurrency"])) ? null : Convert.ToString(row["paymentMethodCurrency"]).Split(','); } var s = new ReceiverInfoModel(); s.receiverId = Convert.ToString(row["receiverId"]); s.fullName = Convert.ToString(row["fullName"]); s.firstName = Convert.ToString(row["firstName"]); s.middleName = Convert.ToString(row["middleName"]); s.lastName = Convert.ToString(row["lastName1"]); s.localFullName = Convert.ToString(row["localizedName"]); s.country = Convert.ToString(row["country"]); s.countryId = Convert.ToString(row["countryId"]); s.countryCode = Convert.ToString(row["countryCode"]); s.address = Convert.ToString(row["address"]); s.state = Convert.ToString(row["state"]); s.stateId = Convert.ToString(row["stateId"]); s.district = Convert.ToString(row["district"]); s.districtId = Convert.ToString(row["districtId"]); s.city = Convert.ToString(row["city"]); s.email = Convert.ToString(row["email"]); s.mobile = Convert.ToString(row["mobile"]); s.relationship = Convert.ToString(row["relationship"]); s.relationshipId = Convert.ToString(row["relationshipId"]); s.district = Convert.ToString(row["district"]); s.purposeOfRemit = Convert.ToString(row["purposeOfRemit"]); s.purposeOfRemitId = Convert.ToString(row["purposeOfRemitId"]); s.idType = Convert.ToString(row["idType"]); s.idTypeId = Convert.ToString(row["idTypeId"]); s.idNumber = Convert.ToString(row["idNumber"]); s.localFirstName = Convert.ToString(row["localFirstName"]); s.localMiddleName = Convert.ToString(row["localMiddleName"]); s.localLastName = Convert.ToString(row["localLastName1"]); s.payoutPartner = Convert.ToString(row["payoutPartner"]); s.nativeCountry = Convert.ToString(row["nativeCountry"]); s.nativeCountryCode = Convert.ToString(row["nativeCountryCode"]); s.nativeCountryId = Convert.ToString(row["nativeCountryId"]); s.hasVerifiedOTP = Convert.ToBoolean(row["isOTPVerified"]); s.isForceUpdate = Convert.ToString(row["isForceUpdate"]); if (row.Table.Columns.Contains("IsAccountValidation")) { s.IsAccountValidationReq = Convert.ToString(row["IsAccountValidation"]); } if (row.Table.Columns.Contains("ApiBankCode")) { s.ApiBankCode = Convert.ToString(row["ApiBankCode"]); } s.isPartnerChanged = string.IsNullOrEmpty(a.id) ? "1" : "0"; if (s.countryId.Equals("151") && !string.IsNullOrWhiteSpace(p.id) && p.id.Equals("1")) { s.isPartnerChanged = "0"; } else if (s.countryId.Equals("203") && !string.IsNullOrWhiteSpace(p.id) && p.id.Equals("12")) { s.isPartnerChanged = "0"; } if (s.countryId.Equals("151") && !string.IsNullOrWhiteSpace(p.id) && p.id.Equals("2") && !string.IsNullOrWhiteSpace(a.id)) { s.isPartnerChanged = "0"; } s.paymentMethod = p; s.agent = a; return s; } public DataTable GetReceiverFields(ReceiverInfoModel receiver) { var sql = "EXEC PROC_RECEIVERFEILD"; sql += " @countryId= " + _dao.FilterString(receiver.countryId); sql += " ,@serviceType= " + _dao.FilterString(receiver.paymentMethod.id); return _dao.ExecuteDataTable(sql); } public JsonRxResponse AddReceiver(string customerId, ReceiverInfoModel receiver) { var lang = Convert.ToString(CallContext.GetData(Constants.Language)); JsonRxResponse jsonRx = new JsonRxResponse(); try { var sql = "EXEC PROC_MOBILE_RECEIVER_INFORMATION "; sql += " @flag = " + _dao.FilterString("add"); sql += " ,@customerId = " + _dao.FilterString(customerId); sql += " ,@receiverId= " + _dao.FilterString(receiver.receiverId); sql += " ,@firstName= " + _dao.FilterString(receiver.firstName); sql += " ,@middleName = " + _dao.FilterString(receiver.middleName); sql += " ,@lastName1 = " + _dao.FilterString(receiver.lastName); sql += " ,@localFirstName = " + _dao.FilterStringUnicode(receiver.localFirstName); sql += " ,@localMiddleName = " + _dao.FilterStringUnicode(receiver.localMiddleName); sql += " ,@localLastName1= " + _dao.FilterStringUnicode(receiver.localLastName); sql += " ,@country = " + _dao.FilterString(receiver.country); sql += " ,@address= " + _dao.FilterString(receiver.address); sql += " ,@state = " + _dao.FilterString(receiver.stateId); sql += " ,@city = " + _dao.FilterString(receiver.city); sql += " ,@email = " + _dao.FilterString(receiver.email); sql += " ,@mobile= " + _dao.FilterString(receiver.mobile); sql += " ,@relationship = " + _dao.FilterString(receiver.relationshipId); sql += " ,@district = " + _dao.FilterString(receiver.districtId); sql += " ,@purposeOfRemit= " + _dao.FilterString(receiver.purposeOfRemitId); sql += " ,@fullName = " + _dao.FilterString(receiver.fullName); sql += " ,@idType= " + _dao.FilterString(receiver.idType); sql += " ,@idNumber= " + _dao.FilterString(receiver.idNumber); sql += " ,@nativeCountry = " + _dao.FilterString(receiver.nativeCountry); if (receiver.agent != null) { sql += " ,@bank = " + _dao.FilterString(receiver.agent.id); sql += " ,@accountNo = " + _dao.FilterString(receiver.agent.accountNo); if (receiver.agent.branch != null) { sql += " ,@branch = " + _dao.FilterString(receiver.agent.branch.id); } } if (receiver.paymentMethod != null) { sql += " ,@paymentMethodId = " + _dao.FilterString(receiver.paymentMethod.id); } Log.DebugFormat("AddReceiver | SQL : {0}", sql); var dataSet = _dao.ParseDbResult(sql); string enumString = string.Empty; if (dataSet.ResponseCode.Equals("0")) { enumString = RESPONSE_MSG.ADD_RECEIVER_SUCCESS.ToString(); } else if (dataSet.ResponseCode.Equals("1")) { enumString = RESPONSE_MSG.ADD_RECEIVER_FAIL.ToString(); } jsonRx.ErrorCode = dataSet.ResponseCode; //jsonRx.Msg = dataSet.Msg; jsonRx.Id = dataSet.Id; //return jsonRx; var map = Utilities.GetLanguageMapping(enumString, lang); return new JsonRxResponse { ErrorCode = dataSet.ResponseCode.Equals("0") ? "0" : "1", Msg = map.Message, Id = dataSet.Id }; } catch (Exception e) { Log.ErrorFormat($"Exception : {e.ToString()}"); jsonRx.ErrorCode = "1"; jsonRx.Msg = "Exception has occured."; return jsonRx; } } public JsonRxResponse ModifyReceiver(string customerId, string receiverId, ReceiverInfoModel receiver) { var lang = Convert.ToString(CallContext.GetData(Constants.Language)); JsonRxResponse jsonRx = new JsonRxResponse(); try { var sql = "EXEC PROC_MOBILE_RECEIVER_INFORMATION "; sql += " @flag = " + _dao.FilterString("modify"); sql += " ,@customerId = " + _dao.FilterString(customerId); sql += " ,@receiverId = " + _dao.FilterString(receiver.receiverId); sql += " ,@firstName= " + _dao.FilterString(receiver.firstName); sql += " ,@middleName= " + _dao.FilterString(receiver.middleName); sql += " ,@lastName1= " + _dao.FilterString(receiver.lastName); sql += " ,@localFirstName= " + _dao.FilterStringUnicode(receiver.localFirstName); sql += " ,@localMiddleName= " + _dao.FilterStringUnicode(receiver.localMiddleName); sql += " ,@localLastName1= " + _dao.FilterStringUnicode(receiver.localLastName); sql += " ,@country= " + _dao.FilterString(receiver.country); sql += " ,@address= " + _dao.FilterString(receiver.address); sql += " ,@state= " + _dao.FilterString(receiver.stateId); sql += " ,@city = " + _dao.FilterString(receiver.city); sql += " ,@email= " + _dao.FilterString(receiver.email); sql += " ,@mobile= " + _dao.FilterString(receiver.mobile); sql += " ,@relationship = " + _dao.FilterString(receiver.relationship); sql += " ,@relationshipId = " + _dao.FilterString(receiver.relationshipId); sql += " ,@district = " + _dao.FilterString(receiver.districtId); sql += " ,@purposeOfRemit= " + _dao.FilterString(receiver.purposeOfRemitId); sql += " ,@fullName = " + _dao.FilterString(receiver.fullName); sql += " ,@idType= " + _dao.FilterString(receiver.idType); sql += " ,@idNumber= " + _dao.FilterString(receiver.idNumber); sql += " ,@nativeCountry= " + _dao.FilterString(receiver.nativeCountry); if (receiver.agent != null) { sql += " ,@bank = " + _dao.FilterString(receiver.agent.id); sql += " ,@accountNo = " + _dao.FilterString(receiver.agent.accountNo); if (receiver.agent.branch != null) { sql += " ,@branch = " + _dao.FilterString(receiver.agent.branch.id); } } if (receiver.paymentMethod != null) { sql += " ,@paymentMethodId = " + _dao.FilterString(receiver.paymentMethod.id); } Log.DebugFormat("ModifyReceiver | SQL : {0}", sql); var dataSet = _dao.ParseDbResult(sql); string enumString = string.Empty; if (dataSet.ResponseCode.Equals("0")) { enumString = RESPONSE_MSG.MODIFY_RECEIVER_SUCCESS.ToString(); } else if (dataSet.ResponseCode.Equals("1")) { enumString = RESPONSE_MSG.MODIFY_RECEIVER_FAIL.ToString(); } jsonRx.ErrorCode = dataSet.ResponseCode; //jsonRx.Id = dataSet.Id; //jsonRx.Msg = dataSet.Msg; //return jsonRx; var map = Utilities.GetLanguageMapping(enumString, lang); return new JsonRxResponse { ErrorCode = dataSet.ResponseCode.Equals("0") ? "0" : "1", Msg = map.Message, Id = dataSet.Id }; } catch (Exception e) { Log.DebugFormat($"Exception : {e.StackTrace.ToString()}"); jsonRx.ErrorCode = "1"; jsonRx.Msg = "Exception has occured."; return jsonRx; } } public ReceiverInfoModel GetReceiver(string customerId, string receiverId) { var sql = "EXEC PROC_MOBILE_RECEIVER_INFORMATION "; sql += " @flag = " + _dao.FilterString("get"); sql += " ,@customerId = " + _dao.FilterString(customerId); sql += " ,@receiverId = " + _dao.FilterString(receiverId); Log.DebugFormat("GetReceiver | SQL : {0}", sql); var dr = _dao.ExecuteDataRow(sql); var s = GetReceiverInfoModel(dr); return s; } public List GetCountryServiceTypeList() { var dt1 = new DataTable(); var dt2 = new DataTable(); var sql = "EXEC PROC_MOBILE_COUNTRYSERVICETYPE_DETAILS @flag='ss'"; Log.DebugFormat("GetCountryServiceTypeList | SQL : {0}", sql); var dataSet = _dao.ExecuteDataset(sql); List countryList = null; countryList = new List(); foreach (DataRow row in dataSet.Tables[0].Rows) { var csl = dataSet.Tables[0]; var stl = dataSet.Tables[1]; foreach (DataRow dr in csl.Rows) { var countryId = dr["countryId"].ToString(); List listServiceType = new List(); var serviceType = stl.AsEnumerable().Where(x => x["countryId"].ToString() == countryId).ToList(); foreach (var st in serviceType) { ServiceTypeAvailable sType = new ServiceTypeAvailable() { id = st["payoutmethodId"].ToString(), text = st["payoutName"].ToString(), description = st["bussinessDescription"].ToString(), currency = st["PayCurrency"].ToString().Split(',') }; listServiceType.Add(sType); } countryList.Add(new CountryList { countryCode = dr["countryCode"].ToString(), countryName = dr["countryName"].ToString(), countryId = dr["countryId"].ToString(), servicetypeAvailable = listServiceType }); } return countryList; } return null; } /* 2019.09 @Dana */ public List GetDomesticTransactionHistory(DateFilterParams search, string userId) { List liTranHistoryResponse = null; var sql = "EXEC PROC_KFTC_DOMESTIC_TRAN_HISTORY @flag='domestictranhis'"; sql += ", @customerId=" + _dao.FilterString("temp"); //저장프로시저에서 필수값이나 transaction history호출시에는 userId를 받아오므로 임시값 보내주고 프로시저에서 조회 sql += ", @fromDate=" + _dao.FilterString(search.FromDate); sql += ", @toDate=" + _dao.FilterString(search.ToDate); sql += ", @userId=" + _dao.FilterString(userId); Log.DebugFormat("GetDomesticTransactionHistory | SQL : {0}", sql); var dt = _dao.ExecuteDataTable(sql); if (dt == null) { return null; } liTranHistoryResponse = new List(); foreach (DataRow dr in dt.Rows) { TranHistoryResponse tranHistoryResponse = new TranHistoryResponse() { TranId = Convert.ToString(dr["processId"]), ControlNo = Convert.ToString(dr["processId"]), PayoutMode = Convert.ToString(dr["recipientBankName"]), SendDate = Convert.ToString(dr["tran_date"]), PayoutAmt = Convert.ToString(dr["sendAmount"]), PayStatus = Convert.ToString(dr["depositStatus"]), User = Convert.ToString(dr["recipientName"]), PCurr = Convert.ToString("KRW") }; liTranHistoryResponse.Add(tranHistoryResponse); } return liTranHistoryResponse; } public TransactionResponse GenerateDomesticReceipt(string tranId) { TransactionResponse tranHistoryResponse = null; var sql = "EXEC PROC_KFTC_DOMESTIC_TRAN_HISTORY @flag='domestictranhis'"; sql += ", @customerId=" + _dao.FilterString("temp"); //저장프로시저에서 필수값이나 transaction history호출시에는 userId를 받아오므로 임시값 보내줌 sql += ", @tranId=" + _dao.FilterString(tranId); Log.DebugFormat("GenerateDomesticReceipt | SQL : {0}", sql); var dt = _dao.ExecuteDataTable(sql); if (dt == null) { return null; } tranHistoryResponse = new TransactionResponse() { collAmount = dt.Rows[0]["sendAmount"].ToString(), payOutAmount = dt.Rows[0]["sendAmount"].ToString(), serviceCharge = dt.Rows[0]["serviceFee"].ToString(), pAgentBank = dt.Rows[0]["recipientBankName"].ToString(), rFirstName = dt.Rows[0]["recipientName"].ToString(), trnsDate = dt.Rows[0]["tran_date"].ToString(), trnId = dt.Rows[0]["processId"].ToString(), controlNo = dt.Rows[0]["processId"].ToString(), accountNo = dt.Rows[0]["recipientAccountNum"].ToString(), rContactNo = dt.Rows[0]["recipientPhone"].ToString() }; return tranHistoryResponse; } //public CouponResult[] GetCouponList(string customerId) //{ // List reuslts = new List(); // var sql = "EXEC proc_CouponOperation @flag='GetCouponList'"; // sql += ", @customerId=" + _dao.FilterString(customerId); // var dt = _dao.ExecuteDataTable(sql); // if (dt == null || dt.Rows.Count == 0) // { // return reuslts.ToArray(); // } // foreach (DataRow row in dt.Rows) // { // CouponResult result = new CouponResult(); // var value = Convert.ToString(row["discountValue"]); // result.schemeId = Convert.ToString(row["rowId"]); // result.couponName = Convert.ToString(row["couponName"]); // result.couponType = Convert.ToString(row["couponType"]); // result.discountType = Convert.ToString(row["discountType"]); // result.discountValue = value; // result.expireDate = Convert.ToString(row["endDate"]); // result.buyDate = Convert.ToString(row["startDate"]); // reuslts.Add(result); // } // return reuslts.ToArray(); //} public StaticData LoadFormStaticData_V3(string type) { StaticData s = new StaticData(); var sql = "EXEC proc_mobile_StaticData @flag=" + _dao.FilterString(type); Log.DebugFormat("LoadFormStaticData | SQL:{0}", sql); var ds = _dao.ExecuteDataset(sql); if (ds == null) { return null; } List ls = new List(); if (ds.Tables.Count == 6) { var cdt = ds.Tables[0]; foreach (DataRow dr in cdt.Rows) { Country c = new Country(); c.Id = Convert.ToString(dr["countryId"]); c.Name = Convert.ToString(dr["country"]); c.Code = Convert.ToString(dr["Code"]); c.IsProvienceReq = Convert.ToString(dr["IsProvienceReq"]); var lsp = new List(); var pdt = ds.Tables[1]; var prov = from cc in pdt.AsEnumerable() where cc.Field("countryId") == c.Id select new Province { id = cc.Field("id"), text = cc.Field("text") }; foreach (var drp in prov) { Province p = new Province(); p.id = Convert.ToString(drp.id); p.text = Convert.ToString(drp.text); var lsd = new List(); var ddt = ds.Tables[2]; var dist = from dd in ddt.AsEnumerable() where dd.Field("provinceId") == p.id select new { id = dd.Field("id"), text = dd.Field("text") }; foreach (var drd in dist) { District d = new District(); d.id = Convert.ToString(drd.id); d.text = Convert.ToString(drd.text); lsd.Add(d); } p.District = lsd; lsp.Add(p); } c.Provinces = lsp; ls.Add(c); } s.Country = ls; var tdt = ds.Tables[3]; var tr = from cc in tdt.AsEnumerable() select new TransferReason { id = cc.Field("id"), text = cc.Field("text") }; s.TransferReasons = tr.ToList(); var rtd = ds.Tables[4]; var rt = from cc in rtd.AsEnumerable() select new Relation { id = cc.Field("id"), text = cc.Field("text") }; s.Relations = rt.ToList(); var rtrid = ds.Tables[5]; var rtid = from cc in rtrid.AsEnumerable() select new IdType { id = cc.Field("id"), text = cc.Field("text") }; s.ReceiverIdType = rtid.ToList(); return s; } return null; } public KycStaticDataV3 LoadKycStaticData_V3(string type, string customerId) { KycStaticDataV3 kycData = new KycStaticDataV3(); var sql = "EXEC proc_mobile_StaticData @flag=" + _dao.FilterString(type); sql += ", @customerId=" + _dao.FilterString(customerId); Log.DebugFormat("LoadKycStaticData | SQL : {0}", sql); var ds = _dao.ExecuteDataset(sql); if (ds == null) { return null; } if (ds.Tables.Count >= 10) { var montly = ds.Tables[0]; var monthlyIncomes = from pr in montly.AsEnumerable() select new MonthlyIncome { id = pr.Field("text"), text = pr.Field("text") }; kycData.MonthlyIncome = monthlyIncomes.ToList(); var source = ds.Tables[1]; var sof = from bk in source.AsEnumerable() select new SourceOfFund { id = bk.Field("id").ToString(), text = bk.Field("text") }; kycData.SourceOfFund = sof.ToList(); var businessType = ds.Tables[2]; var busType = from bk in businessType.AsEnumerable() select new BusniessType { id = bk.Field("id").ToString(), text = bk.Field("text") }; kycData.BusniessType = busType.ToList(); var idType = ds.Tables[3]; var vitr = from vit in idType.AsEnumerable() select new IdType { id = vit.Field("id").ToString(), text = vit.Field("text"), isBackRequired = Convert.ToBoolean(vit.Field("isBackRequired")) }; kycData.IdType = vitr.ToList(); var addIdType = ds.Tables[4]; var addIdTypes = from vit in addIdType.AsEnumerable() select new AdditionalIdType { id = vit.Field("id").ToString(), text = vit.Field("text"), isBackRequired = Convert.ToBoolean(vit.Field("isBackRequired")) }; kycData.AdditionalIdType = addIdTypes.ToList(); var personalInformation = ds.Tables[5]; if (string.IsNullOrEmpty(personalInformation.Rows[0]["idType"].ToString())) { kycData.PersonalInformation = null; } else { foreach (DataRow dt in personalInformation.Rows) { PersonalInformation perInfo = new PersonalInformation() { employeerName = Convert.ToString(dt["employeerName"]), sourceOfFund = Convert.ToString(dt["sourceOfFund"]), monthlyIncome = Convert.ToString(dt["monthlyIncome"]), mobile = Convert.ToString(dt["mobile"]), email = Convert.ToString(dt["email"]), additionalAddress = Convert.ToString(dt["additionalAddress"]), nativeCountry = Convert.ToString(dt["nativeCountry"]), idType = Convert.ToString(dt["idType"]), occupation = Convert.ToString(dt["occupation"]), businessType = Convert.ToString(dt["businessType"]), purposeOfRegistration = Convert.ToString(dt["purposeOfRegistration"]), idIssuingCountry = Convert.ToString(dt["idIssueCountry"]), idStartDate = Convert.ToString(dt["passportIssueDate"]), idExpiryDate = Convert.ToString(dt["passportExpiryDate"]), idNumber = Convert.ToString(dt["passportNumber"]) }; if (type.ToLower().Equals("kycv3-existing")) perInfo.visaStatus = Convert.ToString(dt["visaStatus"]); else perInfo.additionalIdType = Convert.ToString(dt["additionalIdType"]); kycData.PersonalInformation = perInfo; } } var pictures = ds.Tables[6]; string idFrontName = null; string idBackName = null; string idSideName = null; string additionalIdName = null; string additionalIdBackName = null; string facePictureName = null; string registerDate = null; string membershipId = null; foreach (DataRow item in pictures.Rows) { if (item["fileDescription"].ToString() == "idFrontCustUpload") idFrontName = item["fileName"].ToString(); else if (item["fileDescription"].ToString() == "idBackCustUpload") idBackName = item["fileName"].ToString(); else if (item["fileDescription"].ToString() == "idSideCustUpload") idSideName = item["fileName"].ToString(); else if (item["fileDescription"].ToString() == "additionalIdCustUpload") additionalIdName = item["fileName"].ToString(); else if (item["fileDescription"].ToString() == "additionalIdBackCustUpload") additionalIdBackName = item["fileName"].ToString(); else if (item["fileDescription"].ToString() == "SelfieCustUpload") //facePictureCustUpload facePictureName = item["fileName"].ToString(); registerDate = item["REGISTERED_DATE"].ToString(); membershipId = item["MEMBESHIP_ID"].ToString(); } if (pictures.Rows.Count > 0) { var idFrontfileInBytes = Encoding.UTF8.GetBytes(string.IsNullOrEmpty(idFrontName) ? "" : idFrontName); var idBackfileInBytes = Encoding.UTF8.GetBytes(string.IsNullOrEmpty(idBackName) ? "" : idBackName); var idSidefileInBytes = Encoding.UTF8.GetBytes(string.IsNullOrEmpty(idSideName) ? "" : idSideName); var additionalIdfileInBytes = Encoding.UTF8.GetBytes(string.IsNullOrEmpty(additionalIdName) ? "" : additionalIdName); var additionalIdBackfileInBytes = Encoding.UTF8.GetBytes(string.IsNullOrEmpty(additionalIdBackName) ? "" : additionalIdBackName); var facePicturefileInBytes = Encoding.UTF8.GetBytes(string.IsNullOrEmpty(facePictureName) ? "" : facePictureName); var moduleInBytes = Encoding.UTF8.GetBytes("kyc"); var registerDateInBytes = Encoding.UTF8.GetBytes(string.IsNullOrEmpty(registerDate) ? "" : registerDate); var membershipIdInBytes = Encoding.UTF8.GetBytes(string.IsNullOrEmpty(membershipId) ? "" : membershipId); Pictures pic = new Pictures() { 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, 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, 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 }; if (type.ToLower().Equals("kycv3")) { 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; 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; 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; } kycData.Pictures = pic; } var occList = ds.Tables[7]; var occupationList = from pr in occList.AsEnumerable() select new OccupationList { id = pr.Field("id").ToString(), text = pr.Field("text") }; kycData.OccupationList = occupationList.ToList(); if (type.ToLower().Equals("kycv3-existing")) { var visaStatus = ds.Tables[8]; var visaStat = from vit in visaStatus.AsEnumerable() select new VisaStatus { id = vit.Field("id").ToString(), text = vit.Field("text") }; kycData.VisaStatus = visaStat.ToList(); } var purpose = ds.Tables[9]; var purposeOfRegistrations = from pr in purpose.AsEnumerable() select new PurposeOfRegistration { id = pr.Field("id").ToString(), text = pr.Field("text") }; kycData.purposeOfRegistration = purposeOfRegistrations.ToList(); var idIssueCountry = ds.Tables[10]; var idIssueCountries = from idc in idIssueCountry.AsEnumerable() select new NativeCountry { id = idc.Field("id").ToString(), text = idc.Field("text"), code = idc.Field("code"), }; kycData.IdIssueCountry = idIssueCountries.ToList(); return kycData; } return null; } public JsonRxResponse RegisterKYC_V4(CustomerKYC_V4 kyc) { //KycResponse kycResponse = null; JsonRxResponse jsonRx = new JsonRxResponse(); var moduleInBytes = Encoding.UTF8.GetBytes(Common.Helper.ConstantValues.ModuleName.kyc); var sql = "EXEC MOBILE_PROC_CUSTOMERMASTER_V4 @flag='i-V4'"; sql += ", @userId = " + _dao.FilterString(kyc.userId); sql += ", @type = " + kyc.type; Log.DebugFormat("RegisterKYC_V4 | SQL : {0}", sql); var dataTable = _dao.ParseDbResult(sql); jsonRx.SetResponse(dataTable.ResponseCode, dataTable.Msg, dataTable.Id); jsonRx.Extra = dataTable.Extra; jsonRx.Extra2 = Convert.ToString(kyc.type); return jsonRx; } public RewardPoints GetRewardDetails(string customerId) { var lang = Convert.ToString(CallContext.GetData(Constants.Language)); RewardPoints r = new RewardPoints(); var sql = "EXEC mobile_proc_customerMaster @flag='get-invite-details'"; sql += ", @sourceCustomerId = " + _dao.FilterString(customerId); Log.DebugFormat("GetRewardDetails | SQL : {0} | {1}", sql, lang); var ds = _dao.ExecuteDataset(sql); // try // { if (ds.Tables[0].Rows.Count > 0) { DataTable dt = ds.Tables[0]; r.InviteCode = dt.Rows[0]["inviteCode"].ToString(); r.TotalReferral = dt.Rows[0]["totalReferral"].ToString(); r.RewardMoney = string.Format("{0:0.##}", dt.Rows[0]["rewardMoney"].ToString()); r.InviteMessageTitle = Utilities.GetLanguageMapping("INVITE_MESSAGE_TITLE", lang).Message.Replace("@rewardPoint", dt.Rows[0]["totalPoints"].ToString()); r.InviteMessageBody = Utilities.GetLanguageMapping("INVITE_MESSAGE_BODY", lang).Message .Replace("@rewardAmount", dt.Rows[0]["totalPoints"].ToString()) .Replace("@RegReward", dt.Rows[0]["regPoints"].ToString()) .Replace("@TranReward", dt.Rows[0]["tranPoints"].ToString()); r.SourceCustomerId = dt.Rows[0]["sourceCustomerId"].ToString(); r.ShowShareBtn = ConfigurationManager.AppSettings["ShowShareBtn"].ToString(); r.RewardPts = dt.Rows[0]["totalPoints"].ToString(); r.RegReward = dt.Rows[0]["regPoints"].ToString(); r.TranReward = dt.Rows[0]["tranPoints"].ToString(); var rewardDetails = new List(); foreach (DataRow row1 in ds.Tables[1].Rows) { rewardDetails.Add(new RewardDetails { CustomerName = row1["CUSTOMER_NAME"].ToString(), RewardAmount = string.Format("{0:0.##}", row1["REWARD_AMOUNT"].ToString()), RewardType = $"{row1["CUSTOMER_NAME"].ToString()} - { row1["REWARD_TYPE"].ToString()}", DestinationCustomerId = row1["DESTINATION_CUSTOMERID"].ToString(), CreatedDate = row1["CREATED_DATE"].ToString() }); r.Details = rewardDetails.ToList(); } return r; } return null; } public RewardFee GetRewardFee(string customerId) { var lang = Convert.ToString(CallContext.GetData(Constants.Language)) ?? "en-us"; RewardFee r = new RewardFee(); var sql = "EXEC mobile_proc_customerMaster @flag='get-reward-fee'"; sql += ", @sourceCustomerId = " + _dao.FilterString(customerId); Log.DebugFormat("GetRewardFee | SQL : {0} | {1}", sql, lang); var dt = _dao.ExecuteDataTable(sql); if (dt.Rows.Count > 0) { r.ShowRewardPoint = dt.Rows[0]["showRewardPoint"].ToString(); r.Point = dt.Rows[0]["point"].ToString(); r.RewardMessage = Utilities.GetLanguageMapping("REWARD_POINTS_MESSAGE", lang).Message.Replace("@point", dt.Rows[0]["point"].ToString()); return r; } return null; } public LoyaltyPoint GetLoyaltyPoint(string customerId) { var lang = Convert.ToString(CallContext.GetData(Constants.Language)); LoyaltyPoint point = new LoyaltyPoint(); var sql = "EXEC mobile_proc_customerMaster @flag='get-loyalty-points'"; sql += ", @sourceCustomerId = " + _dao.FilterString(customerId); Log.DebugFormat("GetLoyaltyPoint | SQL : {0} | {1}", sql, lang); var dt = _dao.ExecuteDataTable(sql); if (dt.Rows.Count > 0) { point.TotalCount = dt.Rows[0]["totalCount"].ToString(); point.TranCount = dt.Rows[0]["tranCount"].ToString(); point.IsFreeSC = dt.Rows[0]["isFreeSc"].ToString(); point.IsActive = dt.Rows[0]["IsActive"].ToString(); if (point.IsActive != null && point.IsActive.Equals("N")) { point.LoyaltyMsgHead = Utilities.GetLanguageMapping("LOYALTY_DISABLE_HEAD", lang).Message; point.LoyaltyMsgBody = Utilities.GetLanguageMapping("LOYALTY_DISABLE_BODY", lang).Message; return point; } if (dt.Rows[0]["isFreeSc"].ToString() == "N") { point.LoyaltyMsgHead = Utilities.GetLanguageMapping("LOYALTY_MSG_HEAD", lang).Message.Replace("@requiredPoint", dt.Rows[0]["requiredCount"].ToString()); point.LoyaltyMsgBody = Utilities.GetLanguageMapping("LOYALTY_MSG_BODY", lang).Message.Replace("@requiredPoint", dt.Rows[0]["requiredCount"].ToString()); } else { point.LoyaltyMsgHead = Utilities.GetLanguageMapping("LOYALTY_FREESC_HEAD", lang).Message; point.LoyaltyMsgBody = Utilities.GetLanguageMapping("LOYALTY_FREESC_BODY", lang).Message; } return point; } return point; } public JsonRxResponse ValidateReferralCode(string referralCode) { var lang = Convert.ToString(CallContext.GetData(Constants.Language)); JsonRxResponse jsonRx = new JsonRxResponse(); string sql = "EXEC JsonRx_Proc_UserRegistration_V2 @FLAG = 'chk-valid-referralCode' "; sql += ", @referralCode =" + _dao.FilterString(referralCode); Log.DebugFormat("ValidateReferralCode | SQL : {0} | lang {1}", sql, lang); var res = _dao.ParseDbResult(sql); string enumString = string.Empty; if (res.ResponseCode.Equals("0")) { enumString = RESPONSE_MSG.SUBMIT_OTP_SUCCESS.ToString(); } else if (res.ResponseCode.Equals("1")) { enumString = RESPONSE_MSG.USER_REGISTER_FAIL_7.ToString(); } var map = Utilities.GetLanguageMapping(enumString, lang); return new JsonRxResponse { ErrorCode = res.ResponseCode.Equals("0") ? "0" : "1", Msg = map.Message, Id = res.Id, Extra = res.Extra }; } } }