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

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