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
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 };
|
|
}
|
|
}
|
|
}
|