You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

3244 lines
154 KiB

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<CountryServiceResponse> GetCountriesServices()
{
List<CountryServiceResponse> 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<CountryServiceResponse>();
//var operativeCountryTbl = dt1;
var currencyTbl = dt1;
var payoutMethodTbl = dt2;
foreach (DataRow dt in currencyTbl.Rows)
{
var countryId = dt["countryId"].ToString();
List<ServiceAvailable> listServiceAvailable = new List<ServiceAvailable>();
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<string> successCode = new List<string> { "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<GetNotifiCationInfo> getNotifiCationInfos = new List<GetNotifiCationInfo>();
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<KeyValues> GetPaymentMethod(string receiverId, string pcountryid)
{
List<KeyValues> lst = new List<KeyValues>();
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<Country> ls = new List<Country>();
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<Province>();
var pdt = ds.Tables[1];
var prov = from cc in pdt.AsEnumerable()
where cc.Field<string>("countryId") == c.Id
select new Province
{
id = cc.Field<string>("id"),
text = cc.Field<string>("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<District>();
var ddt = ds.Tables[2];
var dist = from dd in ddt.AsEnumerable()
where dd.Field<string>("provinceId") == p.id
select new
{
id = dd.Field<string>("id"),
text = dd.Field<string>("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<string>("id"),
text = cc.Field<string>("text")
};
s.TransferReasons = tr.ToList();
var rtd = ds.Tables[4];
var rt = from cc in rtd.AsEnumerable()
select new Relation
{
id = cc.Field<string>("id"),
text = cc.Field<string>("text")
};
s.Relations = rt.ToList();
var rtrid = ds.Tables[5];
var rtid = from cc in rtrid.AsEnumerable()
select new IdType
{
id = cc.Field<string>("id"),
text = cc.Field<string>("text")
};
s.ReceiverIdType = rtid.ToList();
return s;
}
return null;
}
public List<Receivers> GetReceiversByCustomer(string customer, string search)
{
List<Receivers> ls = new List<Receivers>();
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<int>("id").ToString(),
text = nc.Field<string>("text"),
code = nc.Field<string>("Code")
};
kycData.NativeCountry = ncr.ToList();
var city = ds.Tables[1];
var cit = from pr in city.AsEnumerable()
select new City
{
id = pr.Field<string>("id").ToString(),
text = pr.Field<string>("text")
};
kycData.City = cit.ToList();
var occupation = ds.Tables[2];
var occr = from occ in occupation.AsEnumerable()
select new Occuption
{
id = occ.Field<int>("id").ToString(),
text = occ.Field<string>("text")
};
kycData.Occupation = occr.ToList();
var bank = ds.Tables[3];
var bkr = from bk in bank.AsEnumerable()
select new PrimaryBank
{
id = bk.Field<int>("id").ToString(),
text = bk.Field<string>("text")
};
kycData.Bank = bkr.ToList();
var idType = ds.Tables[4];
var vitr = from vit in idType.AsEnumerable()
select new IdType
{
id = vit.Field<int>("id").ToString(),
text = vit.Field<string>("text")
};
kycData.IdType = vitr.ToList();
var sourceOfFund = ds.Tables[5];
var src = from srcc in sourceOfFund.AsEnumerable()
select new SourceOfFund
{
id = srcc.Field<int>("id").ToString(),
text = srcc.Field<string>("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<GetNotifiCationListInfo> getNotifiCationListInfos = new List<GetNotifiCationListInfo>();
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<TranHistoryResponse> GetTransactionHistory(DateFilterParams search, string userId)
{
List<TranHistoryResponse> 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<TranHistoryResponse>();
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<ResponsePdfDetail> pdfDetails = new List<ResponsePdfDetail>();
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<AppUpdate> app = new List<AppUpdate>();
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<WalletStatementResponse> GetWalletStatement(DateFilterParams search, string userId)
{
WalletStatementResponse walletResponse = null;
List<WalletStatementResponse> lstWalletResponse = new List<WalletStatementResponse>();
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<AccountDetails> 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> _accountDetails = new List<AccountDetails>();
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<ResponsePdfDetail> pdfDetails = new List<ResponsePdfDetail>();
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<int>("id").ToString(),
text = cc.Field<string>("text")
};
_cddi.PurposeOfRemittance = Reason.ToList();
/* Source of Fund*/
var Source = from cc in dataSet.Tables[0].AsEnumerable()
select new SourceOfFund
{
id = cc.Field<int>("id").ToString(),
text = cc.Field<string>("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<DataRow> rowsIos = new List<DataRow>();
//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<DataRow>().ToList();
// }
//}
List<DymanicField> dymanicFields = new List<DymanicField>();
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<string>("id").ToString(),
text = cc.Field<string>("text")
};
s.TransferReasons = Reason.ToList();
//var reasonList = from b in dataSet.Tables[1].AsEnumerable() select new { Reason = b.Field<string>("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<string>("id").ToString(),
text = cc.Field<string>("text")
};
s.Relations = Relation.ToList();
//var relationList = from b in dataSet.Tables[2].AsEnumerable() select new { Relation = b.Field<string>("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<string>("id").ToString(),
text = cc.Field<string>("text")
};
s.ReceiverIdType = IdType.ToList();
//var idTypeList = from b in dataSet.Tables[3].AsEnumerable() select new { IdType = b.Field<string>("IdType") };
//var IdType = idTypeList.ToList().Select(x => x.IdType).ToArray();
//var bankNameList = from b in dataSet.Tables[4].AsEnumerable() select new { BankName = b.Field<string>("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<string>("id").ToString(),
text = cc.Field<string>("text")
};
s.Provinces = Proviences.ToList();
var lsp = new List<Provinces>();
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<District>();
var ddt = dataSet.Tables[5];
var dist = from dd in ddt.AsEnumerable()
where dd.Field<string>("provinceId") == drp.id
select new
{
id = dd.Field<string>("id"),
text = dd.Field<string>("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<DPayoutmode> pmodeLs = new List<DPayoutmode>();
if (payMode.Rows.Count > 0)
{
foreach (DataRow dr in payMode.Rows)
{
var currs = Convert.ToString(dr["PayCurrency"]);
var lscurr = new List<string>();
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<Banks>();
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<BankBranch>();
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<string> pC = new List<string>();
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<ReceiverInfoModel> rim = new List<ReceiverInfoModel>();
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<ServiceTypeDetails> sd = JsonConvert.DeserializeObject<List<ServiceTypeDetails>>(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<CountryList> 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> countryList = null;
countryList = new List<CountryList>();
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<ServiceTypeAvailable> listServiceType = new List<ServiceTypeAvailable>();
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<TranHistoryResponse> GetDomesticTransactionHistory(DateFilterParams search, string userId)
{
List<TranHistoryResponse> 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<TranHistoryResponse>();
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<CouponResult> reuslts = new List<CouponResult>();
// 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<Country> ls = new List<Country>();
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<Province>();
var pdt = ds.Tables[1];
var prov = from cc in pdt.AsEnumerable()
where cc.Field<string>("countryId") == c.Id
select new Province
{
id = cc.Field<string>("id"),
text = cc.Field<string>("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<District>();
var ddt = ds.Tables[2];
var dist = from dd in ddt.AsEnumerable()
where dd.Field<string>("provinceId") == p.id
select new
{
id = dd.Field<string>("id"),
text = dd.Field<string>("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<string>("id"),
text = cc.Field<string>("text")
};
s.TransferReasons = tr.ToList();
var rtd = ds.Tables[4];
var rt = from cc in rtd.AsEnumerable()
select new Relation
{
id = cc.Field<string>("id"),
text = cc.Field<string>("text")
};
s.Relations = rt.ToList();
var rtrid = ds.Tables[5];
var rtid = from cc in rtrid.AsEnumerable()
select new IdType
{
id = cc.Field<string>("id"),
text = cc.Field<string>("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<string>("text"),
text = pr.Field<string>("text")
};
kycData.MonthlyIncome = monthlyIncomes.ToList();
var source = ds.Tables[1];
var sof = from bk in source.AsEnumerable()
select new SourceOfFund
{
id = bk.Field<int>("id").ToString(),
text = bk.Field<string>("text")
};
kycData.SourceOfFund = sof.ToList();
var businessType = ds.Tables[2];
var busType = from bk in businessType.AsEnumerable()
select new BusniessType
{
id = bk.Field<int>("id").ToString(),
text = bk.Field<string>("text")
};
kycData.BusniessType = busType.ToList();
var idType = ds.Tables[3];
var vitr = from vit in idType.AsEnumerable()
select new IdType
{
id = vit.Field<int>("id").ToString(),
text = vit.Field<string>("text"),
isBackRequired = Convert.ToBoolean(vit.Field<int>("isBackRequired"))
};
kycData.IdType = vitr.ToList();
var addIdType = ds.Tables[4];
var addIdTypes = from vit in addIdType.AsEnumerable()
select new AdditionalIdType
{
id = vit.Field<int>("id").ToString(),
text = vit.Field<string>("text"),
isBackRequired = Convert.ToBoolean(vit.Field<int>("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<int>("id").ToString(),
text = pr.Field<string>("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<int>("id").ToString(),
text = vit.Field<string>("text")
};
kycData.VisaStatus = visaStat.ToList();
}
var purpose = ds.Tables[9];
var purposeOfRegistrations = from pr in purpose.AsEnumerable()
select new PurposeOfRegistration
{
id = pr.Field<int>("id").ToString(),
text = pr.Field<string>("text")
};
kycData.purposeOfRegistration = purposeOfRegistrations.ToList();
var idIssueCountry = ds.Tables[10];
var idIssueCountries = from idc in idIssueCountry.AsEnumerable()
select new NativeCountry
{
id = idc.Field<int>("id").ToString(),
text = idc.Field<string>("text"),
code = idc.Field<string>("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<RewardDetails>();
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 };
}
}
}