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.
393 lines
15 KiB
393 lines
15 KiB
using Swift.API.MapAPIData;
|
|
using Swift.DAL.APIDataMappingDao;
|
|
using Swift.DAL.SwiftDAL;
|
|
using Swift.web.Library;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Data.OleDb;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading;
|
|
using System.Windows.Forms;
|
|
using System.Xml.Serialization;
|
|
using static Swift.API.Common.MapAPIData.APIBankModel;
|
|
|
|
namespace Swift.web.Remit.APIDataMapping.BankDataMapping
|
|
{
|
|
public partial class ManageBankData : System.Web.UI.Page
|
|
{
|
|
protected DownloadAPIData _map = new DownloadAPIData();
|
|
protected APIMapping _dao = new APIMapping();
|
|
protected FuzzyMatcher _match = new FuzzyMatcher();
|
|
private readonly RemittanceLibrary _sl = new RemittanceLibrary();
|
|
private const string ViewFunctionId = "20201800";
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
{
|
|
Authenticate();
|
|
if (!IsPostBack)
|
|
{
|
|
ShowMasterData();
|
|
|
|
}
|
|
}
|
|
private void Authenticate()
|
|
{
|
|
_sl.CheckAuthentication(ViewFunctionId);
|
|
}
|
|
|
|
protected void btnDownloadBank_Click(object sender, EventArgs e)
|
|
{
|
|
//string partner = GetPartner();
|
|
//if (!string.IsNullOrEmpty(partner))
|
|
//{
|
|
// BankRequest request = new BankRequest()
|
|
// {
|
|
// CountryCode = GetCountry(),
|
|
// ProviderId = partner,
|
|
// SessionId = GetStatic.GetSessionId()
|
|
// };
|
|
// var response = _map.ThirdPartyApiGetDataOnlyNew<BankRequest, _BankResponse>(request, "api/v1/TP/bankList", "Data", "post");
|
|
// if (response.ResponseCode == "0")
|
|
// {
|
|
// var sessionId = GetStatic.GetSessionId();
|
|
// var xml = ObjectToXML(response.Data);
|
|
// var res = _dao.SyncBank(GetStatic.GetUser(), xml, GetCountry(), request.ProviderId, "NPR", sessionId);
|
|
|
|
// if (res.ErrorCode == "0")
|
|
// {
|
|
// LoadDataFromTemp(sessionId);
|
|
// }
|
|
// else
|
|
// {
|
|
// GetStatic.AlertMessage(this, res.Msg);
|
|
// }
|
|
// }
|
|
//}
|
|
}
|
|
|
|
private List<string> GetMatchingData(DataRow item, DataTable dt)
|
|
{
|
|
int pcnt = 0;
|
|
string stringToSearch = item["BANK_NAME"].ToString().Replace(".", "");
|
|
string pattern = "";
|
|
bool res = false;
|
|
|
|
string md1 = "", md2 = "", md3 = "", ret1 = "", ret2 = "";
|
|
List<string> list = new List<string>();
|
|
//var masterData = item["BANK_NAME"].ToString().Replace(".", "").Split(' ');
|
|
//md1 = SoundexA.Soundex(masterData[0]);
|
|
//int matchCount = 0;
|
|
|
|
//if(masterData.Length > 1)
|
|
// md2 = SoundexA.Soundex(masterData[1]);
|
|
|
|
//if (masterData.Length > 2)
|
|
// md3 = SoundexA.Soundex(masterData[2]);
|
|
|
|
foreach (DataRow dr in dt.Rows)
|
|
{
|
|
//var matchData = dr["BANK_NAME"].ToString().Replace(".", "").Split(' ');
|
|
//foreach (var items in matchData)
|
|
//{
|
|
// string soundex = SoundexA.Soundex(items);
|
|
// if (soundex == md1 || soundex == md2 || soundex == md3)
|
|
// {
|
|
// matchCount++;
|
|
// }
|
|
//}
|
|
int lengthh = stringToSearch.Length;
|
|
pattern = dr["BANK_NAME"].ToString().Replace(".", "");
|
|
res = FuzzyMatcher.FuzzyMatch(stringToSearch, pattern, out pcnt);
|
|
if (res == true && pcnt >= 0)
|
|
{
|
|
list.Add(dr["ROW_ID"].ToString());
|
|
list.Add(dr["BANK_NAME"].ToString());
|
|
break;
|
|
}
|
|
//matchCount = 0;
|
|
}
|
|
return list;
|
|
}
|
|
|
|
public string ObjectToXML(object input)
|
|
{
|
|
try
|
|
{
|
|
var stringwriter = new StringWriter();
|
|
var serializer = new XmlSerializer(input.GetType());
|
|
serializer.Serialize(stringwriter, input);
|
|
return stringwriter.ToString();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
if (ex.InnerException != null)
|
|
ex = ex.InnerException;
|
|
|
|
return "Could not convert: " + ex.Message;
|
|
}
|
|
}
|
|
|
|
protected void ShowMasterData(string isAfterMap = "N")
|
|
{
|
|
detailsLabel.Text = "Mapping for: " + GetPartnerName() + " >> " + GetStatic.ReadQueryString("countryName", "") + " >> " + GetStatic.ReadQueryString("paymentTypeName", "");
|
|
payoutPartner.Text = "Bank List For: " + GetPartnerName();
|
|
if (!string.IsNullOrEmpty(GetCountry()) && !string.IsNullOrEmpty(GetPaymentMode()))
|
|
{
|
|
DataTable dt = null;
|
|
if (isAfterMap == "N")
|
|
{
|
|
dt = GetStatic.ReadSessionAsTable("MasterDataList");
|
|
//if (dt == null)
|
|
//{
|
|
dt = _dao.GetMasterDataList(GetStatic.GetUser(), GetCountry(), GetPaymentMode(), GetPartner(), GetNoOfRows());
|
|
//}
|
|
}
|
|
else
|
|
{
|
|
dt = _dao.GetMasterDataList(GetStatic.GetUser(), GetCountry(), GetPaymentMode(), GetPartner(), GetNoOfRows());
|
|
}
|
|
|
|
if (dt != null || dt.Rows.Count > 0)
|
|
{
|
|
GetStatic.WriteSessionAsDataTable("MasterDataList", dt);
|
|
PopulateMasterData(dt);
|
|
}
|
|
}
|
|
}
|
|
|
|
private void PopulateMasterData(DataTable dt)
|
|
{
|
|
//if (dt.Rows.Count == 0)
|
|
//{
|
|
// btnDownloadBank.Enabled = true;
|
|
// btnLoadFromTemp.Enabled = false;
|
|
// btnSaveMapping.Enabled = false;
|
|
// btnShowMappedData.Disabled = true;
|
|
//}
|
|
|
|
StringBuilder sb = new StringBuilder();
|
|
foreach (DataRow item in dt.Rows)
|
|
{
|
|
sb.AppendLine("<tr>");
|
|
sb.AppendLine("<td>" + item["BANK_NAME"].ToString() + "</td>");
|
|
sb.AppendLine("<td>" + item["JME_BANK_CODE"].ToString() + "</td>");
|
|
sb.AppendLine("</tr>");
|
|
}
|
|
masterTableBody.InnerHtml = sb.ToString();
|
|
}
|
|
|
|
protected string GetCountry()
|
|
{
|
|
return GetStatic.ReadQueryString("country", "");
|
|
}
|
|
|
|
protected string GetPartner()
|
|
{
|
|
return GetStatic.ReadQueryString("partner", "");
|
|
}
|
|
protected string GetPartnerName()
|
|
{
|
|
return GetStatic.ReadQueryString("partnerName", "");
|
|
}
|
|
protected string GetCountryName()
|
|
{
|
|
return GetStatic.ReadQueryString("countryName", "");
|
|
}
|
|
protected string GetPaymentTypeName()
|
|
{
|
|
return GetStatic.ReadQueryString("paymentTypeName", "");
|
|
}
|
|
|
|
protected string GetPaymentMode()
|
|
{
|
|
return GetStatic.ReadQueryString("paymentType", "") == "" ? "0" : GetStatic.ReadQueryString("paymentType", "");
|
|
}
|
|
|
|
protected string GetNoOfRows()
|
|
{
|
|
return ddlNoOfBanks.SelectedValue;
|
|
}
|
|
|
|
protected void btnLoadFromTemp_Click(object sender, EventArgs e)
|
|
{
|
|
LoadDataFromTemp("");
|
|
}
|
|
|
|
protected void LoadDataFromTemp(string sessionId)
|
|
{
|
|
DataTable dt = _dao.GetMasterDownlodList(GetStatic.GetUser(), GetCountry(), GetPaymentMode(), GetPartner(), sessionId);
|
|
|
|
if (dt.Rows.Count > 0 || dt != null)
|
|
{
|
|
StringBuilder sb = new StringBuilder();
|
|
DataTable _masterData = _dao.GetMasterDataList(GetStatic.GetUser(), GetCountry(), GetPaymentMode(), GetPartner(), GetNoOfRows());
|
|
foreach (DataRow item in _masterData.Rows)
|
|
{
|
|
var res = GetMatchingData(item, dt);
|
|
sb.AppendLine("<tr>");
|
|
if (res.Count > 0)
|
|
{
|
|
sb.AppendLine("<td>" + GetStatic.MakeAutoCompleteControl(item["MASTER_BANK_ID"].ToString(), "'category' : 'remit-mapBankData'", res[0], res[1] + " | " + res[0]) + "</td>");
|
|
}
|
|
else
|
|
{
|
|
sb.AppendLine("<td>" + GetStatic.MakeAutoCompleteControl(item["MASTER_BANK_ID"].ToString(), "'category' : 'remit-mapBankData'") + "</td>");
|
|
}
|
|
sb.AppendLine("<td>" + item["JME_BANK_CODE"].ToString() + "</td>");
|
|
sb.AppendLine("</tr>");
|
|
}
|
|
tableBody.InnerHtml = sb.ToString();
|
|
}
|
|
}
|
|
|
|
protected void btnSaveMapping_Click(object sender, EventArgs e)
|
|
{
|
|
DataTable dt = GetStatic.ReadSessionAsTable("MasterDataList");
|
|
if (dt.Rows.Count == 0 || dt == null)
|
|
{
|
|
return;
|
|
}
|
|
|
|
StringBuilder sb = new StringBuilder("<root>");
|
|
foreach (DataRow item in dt.Rows)
|
|
{
|
|
sb.AppendLine("<row");
|
|
sb.Append(string.Format(" {0}=\"{1}\"", "MASTER_ID", item["MASTER_BANK_ID"].ToString()));
|
|
sb.Append(string.Format(" {0}=\"{1}\"", "TEMP_ID", Request.Form[item["MASTER_BANK_ID"].ToString() + "_aValue"]));
|
|
sb.Append(" />");
|
|
}
|
|
sb.Append("</root>");
|
|
|
|
string xml = sb.ToString();
|
|
|
|
_dao.SaveMappingData(GetStatic.GetUser(), xml);
|
|
ShowMasterData("Y");
|
|
LoadDataFromTemp("");
|
|
}
|
|
|
|
protected void ddlNoOfBanks_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
ShowMasterData("Y");
|
|
}
|
|
|
|
protected void btnUploadBank_Click(object sender, EventArgs e)
|
|
{
|
|
string filePath = string.Empty;
|
|
string fileExt = string.Empty;
|
|
string partner = GetPartner();
|
|
var sessionId = GetStatic.GetSessionId();
|
|
|
|
if (!string.IsNullOrEmpty(partner))
|
|
{
|
|
filePath = uploadedFile.Text; //get the path of the file
|
|
fileExt = Path.GetExtension(filePath); //get the file extension
|
|
if (fileExt.CompareTo(".xls") == 0 || fileExt.CompareTo(".xlsx") == 0)
|
|
{
|
|
try
|
|
{
|
|
DataSet dtExcel = new DataSet();
|
|
dtExcel = ReadExcel(filePath, fileExt); //read excel file
|
|
var xml = ObjectToXML(dtExcel.Tables[0]);
|
|
//Compare Jme BankName and partner bankName
|
|
DbResult matchedResult = CompareBankName(xml);
|
|
if (matchedResult.ErrorCode.ToString() != "1")
|
|
{
|
|
var res = _dao.SyncBankNew(GetStatic.GetUser(), xml, GetCountryName(), partner, "NPR", sessionId, GetPaymentMode());
|
|
|
|
if (res.ErrorCode == "0")
|
|
{
|
|
ShowMasterData();
|
|
LoadDataFromTemp(sessionId);
|
|
}
|
|
else
|
|
{
|
|
GetStatic.AlertMessage(this, res.Msg);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
GetStatic.AlertMessage(this.Page, matchedResult.Msg.ToString());
|
|
}
|
|
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show(ex.Message.ToString());
|
|
}
|
|
}
|
|
else
|
|
{
|
|
MessageBox.Show("Please choose .xls or .xlsx file only.", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Error); //custom messageBox to show error
|
|
}
|
|
}
|
|
}
|
|
|
|
protected void chooseFile_Click(object sender, EventArgs e)
|
|
{
|
|
Thread t = new Thread((ThreadStart)(() =>
|
|
{
|
|
OpenFileDialog saveFileDialog1 = new OpenFileDialog();
|
|
|
|
saveFileDialog1.Filter = "Excel Files|*.xls;*.xlsx;*.xlsm";
|
|
saveFileDialog1.FilterIndex = 2;
|
|
saveFileDialog1.RestoreDirectory = true;
|
|
|
|
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
|
|
{
|
|
uploadedFile.Text = saveFileDialog1.FileName;
|
|
}
|
|
}));
|
|
|
|
// Run your code from a thread that joins the STA Thread
|
|
t.SetApartmentState(ApartmentState.STA);
|
|
t.Start();
|
|
t.Join();
|
|
}
|
|
public DataSet ReadExcel(string fileName, string fileExt)
|
|
{
|
|
string conn = string.Empty;
|
|
DataSet dtexcel = new DataSet();
|
|
if (fileExt.CompareTo(".xls") == 0)
|
|
conn = @"provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileName + ";Extended Properties='Excel 8.0;HRD=Yes;IMEX=1';"; //for below excel 2007
|
|
else
|
|
conn = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + ";Extended Properties=Excel 12.0;"; //for above excel 2007
|
|
using (OleDbConnection con = new OleDbConnection(conn))
|
|
{
|
|
try
|
|
{
|
|
OleDbDataAdapter oleAdpt = new OleDbDataAdapter("select * from [Sheet1$]", con); //here we read data from sheet1
|
|
oleAdpt.Fill(dtexcel); //fill excel data into dataTable
|
|
}
|
|
catch (Exception ex) { }
|
|
}
|
|
return dtexcel;
|
|
}
|
|
public DbResult CompareBankName(string xml)
|
|
{
|
|
DbResult result = _dao.CompareBankName(GetStatic.GetUser(), xml);
|
|
return result;
|
|
}
|
|
public class MyObj
|
|
{
|
|
public string Name { get; set; }
|
|
public string ID { get; set; }
|
|
}
|
|
|
|
protected void btnLoadFromBankList_Click(object sender, EventArgs e)
|
|
{
|
|
DbResult res = _dao.LoadFromBankList(GetStatic.GetUser(), GetCountry(), GetPaymentMode(), GetPartner(), "");
|
|
if (res.ErrorCode == "0")
|
|
{
|
|
LoadDataFromTemp("");
|
|
}
|
|
else
|
|
{
|
|
GetStatic.AlertMessage(this.Page, res.Msg);
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|