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.
96 lines
4.4 KiB
96 lines
4.4 KiB
using Common;
|
|
using Common.Helper;
|
|
using Common.InboundModel;
|
|
using Common.Model.PennyTest;
|
|
using log4net;
|
|
using System.Data;
|
|
|
|
namespace Repository.Inbound
|
|
{
|
|
public interface IInboundPennyTestRepository
|
|
{
|
|
JsonRxResponse SavePennyTestCustomerCertificate(PennyTestCustomerCert cert);
|
|
|
|
JsonRxResponse VerifyCertificate(string customerId, string certNum, string bankCode, string accountNo);
|
|
|
|
PennyTestStartRequestModel GetPennyTestRequiredData(string email, string bankcode, string accountNo);
|
|
|
|
DataTable GetCustomerBankInformation(string customerId, string bankCode, string accountNo);
|
|
|
|
PennyTestRequestParam GetAutoDebitAccountById(string accountID);
|
|
}
|
|
|
|
public class InboundPennyTestRepository : IInboundPennyTestRepository
|
|
{
|
|
private readonly Dao _dao;
|
|
private static readonly ILog Log = LogManager.GetLogger(typeof(InboundPennyTestRepository));
|
|
|
|
public InboundPennyTestRepository()
|
|
{
|
|
_dao = new Dao();
|
|
}
|
|
|
|
public JsonRxResponse SavePennyTestCustomerCertificate(PennyTestCustomerCert cert)
|
|
{
|
|
//Log.Debug("Trying to save the customer penny test certificate detail.");
|
|
var sql = "EXEC INBOUND_PROC_CUSTOMERBANKVERIFICATION @flag = 'REQ'";
|
|
sql += ", @pCustomerId = " + _dao.FilterString(cert.CustomerId);
|
|
sql += ", @pCertNumber = " + _dao.FilterString(cert.CertNumber);
|
|
sql += ", @pCertLimitCount = " + _dao.FilterString(cert.CertLimitCount);
|
|
sql += ", @pBankCode = " + _dao.FilterString(cert.BankCode);
|
|
sql += ", @pBankAccountNo = " + _dao.FilterString(cert.BankAccountNo);
|
|
sql += ", @pIdType = " + _dao.FilterString(cert.IdType);
|
|
sql += ", @pIdNumber = " + _dao.FilterString(cert.IdNumber);
|
|
sql += ", @pGender = " + _dao.FilterString(cert.Gender);
|
|
sql += ", @pNativeCountry = " + _dao.FilterString(cert.NativeCountry);
|
|
sql += ", @pAction = " + _dao.FilterString(cert.Action);
|
|
|
|
var dbRes = _dao.ParseDbResult(sql);
|
|
//Log.Debug(sql);
|
|
return new JsonRxResponse { ErrorCode = dbRes.ResponseCode, Msg = dbRes.Msg, Id = dbRes.Id, Extra = dbRes.Extra, Extra2 = dbRes.Extra };
|
|
}
|
|
|
|
public JsonRxResponse VerifyCertificate(string customerId, string certNum, string bankCode, string accountNo)
|
|
{
|
|
var sql = "INBOUND_PROC_CUSTOMERBANKVERIFICATION @flag = 'TRY'";
|
|
sql += ", @pCertNumber = " + _dao.FilterString(certNum);
|
|
sql += ", @pCustomerId = " + _dao.FilterString(customerId);
|
|
sql += ", @pBankCode = " + _dao.FilterString(bankCode);
|
|
sql += ", @pBankAccountNo = " + _dao.FilterString(accountNo);
|
|
Log.Info("Verifies the customer penny certificate number.");
|
|
Log.Debug(sql);
|
|
var dbRes = _dao.ParseDbResult(sql);
|
|
return new JsonRxResponse { ErrorCode = dbRes.ResponseCode, Msg = dbRes.Msg, Id = dbRes.Id, Extra = dbRes.Extra, Extra2 = dbRes.Extra };
|
|
}
|
|
|
|
public PennyTestStartRequestModel GetPennyTestRequiredData(string email, string bankcode, string accountNo)
|
|
{
|
|
var sql = "INBOUND_PROC_CUSTOMERBANKVERIFICATION @flag = 'CUSTOMER-INFO'";
|
|
sql += ", @pEmail = " + _dao.FilterString(email);
|
|
sql += ", @pBankCode = " + _dao.FilterString(bankcode);
|
|
sql += ", @pBankAccountNo = " + _dao.FilterString(accountNo);
|
|
|
|
var dt = _dao.ExecuteDataTable(sql);
|
|
return Mapper.DataTableToClass<PennyTestStartRequestModel>(dt)[0];
|
|
}
|
|
|
|
public DataTable GetCustomerBankInformation(string customerId, string bankCode, string accountNo)
|
|
{
|
|
var sql = "EXEC INBOUND_PROC_CUSTOMERBANKVERIFICATION @flag = 'CUSTOMER-BANK-INFO'";
|
|
sql += ", @pCustomerId = " + _dao.FilterString(customerId);
|
|
sql += ", @pBankCode = " + _dao.FilterString(bankCode);
|
|
sql += ", @pBankAccountNo = " + _dao.FilterString(accountNo);
|
|
var dt = _dao.ExecuteDataTable(sql);
|
|
|
|
return dt;
|
|
}
|
|
|
|
public PennyTestRequestParam GetAutoDebitAccountById(string accountID)
|
|
{
|
|
var sql = "EXEC INBOUND_PROC_CUSTOMERBANKVERIFICATION @flag = 'AutodebitById'";
|
|
sql += ", @autodebitId = " + _dao.FilterString(accountID);
|
|
var dt = _dao.ExecuteDataRow(sql);
|
|
return Mapper.DataRowToClass<PennyTestRequestParam>(dt);
|
|
}
|
|
}
|
|
}
|