Browse Source

Merge branch 'feature/Redmine-16525-Cosmetic_Changes' of http://202.166.220.79:3000/IME-LONDON/WEB_CORE into staging

feature/Redmine-16525-Cosmetic_Changes
Leeza Baidar 3 months ago
parent
commit
005aae4f5a
  1. 57
      Swift.DAL/Remittance/TxnFileUpload/TxnDao.cs
  2. 1
      Swift.DAL/Swift.DAL.csproj
  3. 85
      Swift.web/AgentPanel/UploadFIle/TranFile.aspx
  4. 160
      Swift.web/AgentPanel/UploadFIle/TranFile.aspx.cs
  5. 53
      Swift.web/AgentPanel/UploadFIle/TranFile.aspx.designer.cs
  6. 125
      Swift.web/AgentPanel/UploadFIle/TxnList.aspx
  7. 181
      Swift.web/AgentPanel/UploadFIle/TxnList.aspx.cs
  8. 98
      Swift.web/AgentPanel/UploadFIle/TxnList.aspx.designer.cs
  9. 143
      Swift.web/Library/GetStatic.cs
  10. 16
      Swift.web/Swift.web.csproj

57
Swift.DAL/Remittance/TxnFileUpload/TxnDao.cs

@ -0,0 +1,57 @@
using Swift.DAL.SwiftDAL;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Swift.DAL.Remittance.TxnFileUpload
{
public class TxnDao : RemittanceDao
{
public DbResult GetFileName(string fileName)
{
var sql = "Exec proc_UploadedFileTxnHistory @flag='checkFileName'";
sql += " ,@showFileName =" + FilterString(fileName);
return ParseDbResult(sql.ToString());
}
public DbResult InsertData(string user, string fileName, string agentCode, string xml)
{
var sql = "Exec proc_UploadedFileTxnHistory @flag='insertData'";
sql += " ,@user =" + FilterString(user);
sql += " ,@showFileName =" + FilterString(fileName);
sql += " ,@agentCode =" + FilterString(agentCode);
sql += ",@xml ='" + xml + "'";
return ParseDbResult(sql);
}
public DataTable ShowFileList()
{
var sql = "Exec proc_UploadedFileTxnHistory @flag='showFileList'";
return ExecuteDataTable(sql.ToString());
}
public DataTable ShowTxnList(string UploadedFileId, string txnType)
{
var sql = "Exec proc_UploadedFileTxnHistory @flag='showTxnList'";
sql += " ,@uploadedFileId =" + Convert.ToInt32(UploadedFileId);
sql += " ,@txnType =" + FilterString(txnType);
return ExecuteDataTable(sql.ToString());
}
public DbResult ProcessTxn(string user, string rowIds)
{
var sql = "Exec proc_UploadedFileTxnHistory @flag='processTxn'";
sql += " ,@user =" + FilterString(user);
sql += " ,@rowIds =" + FilterString(rowIds);
return ParseDbResult(sql.ToString());
}
public DbResult DeleteTxn(string user, string rowId)
{
var sql = "Exec proc_UploadedFileTxnHistory @flag='deleteTxn'";
sql += " ,@user =" + FilterString(user);
sql += " ,@rowId =" + FilterString(rowId);
return ParseDbResult(sql.ToString());
}
}
}

1
Swift.DAL/Swift.DAL.csproj

@ -412,6 +412,7 @@
<Compile Include="Remittance\Transaction\UcTranDao.cs" />
<Compile Include="Remittance\Transaction\UpdateBranchDao.cs" />
<Compile Include="Remittance\Transaction\UserMatrixDao.cs" />
<Compile Include="Remittance\TxnFileUpload\TxnDao.cs" />
<Compile Include="SwiftDAL\DbResult.cs" />
<Compile Include="SwiftDAL\GridDao.cs" />
<Compile Include="Remittance\RemittanceDao.cs" />

85
Swift.web/AgentPanel/UploadFIle/TranFile.aspx

@ -0,0 +1,85 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TranFile.aspx.cs" Inherits="Swift.web.AgentPanel.UploadFIle.TranFile" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="../../../../js/swift_grid.js" type="text/javascript"> </script>
<script src="../../../../js/functions.js" type="text/javascript"> </script>
<link href="../../../../js/jQuery/jquery-ui.css" rel="stylesheet" type="text/css" />
<link href="../../../../ui/css/menu.css" type="text/css" rel="stylesheet" />
<link href="../../../../ui/bootstrap/css/bootstrap.min.css" rel="stylesheet" />
<link href="../../../../ui/css/waves.min.css" type="text/css" rel="stylesheet" />
<link href="../../../../ui/css/style.css" type="text/css" rel="stylesheet" />
<link href="../../../../ui/font-awesome/css/font-awesome.min.css" rel="stylesheet" />
<script type="text/javascript" src="../../../../ui/js/jquery.min.js"></script>
<script type="text/javascript" src="../../../../ui/bootstrap/js/bootstrap.min.js"></script>
<script type="text/javascript">
function ShowTran(UploadedFileId) {
event.preventDefault();
window.location.href = "../UploadFIle/TxnList.aspx?UploadedFileId=" + UploadedFileId;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div class="page-wrapper">
<div class="row">
<div class="col-sm-12">
<div class="page-title">
<h1></h1>
<ol class="breadcrumb">
<li><a href="../../../Front.aspx" target="mainFrame"><i class="fa fa-home"></i></a></li>
<li><a href="#">Transaction</a></li>
<li><a href="#">Upload Transaction File</a></li>
</ol>
</div>
</div>
</div>
<div class="report-tab">
<div class="row">
<div class="col-md-12">
<div class="panel panel-default recent-activites">
<div class="panel-heading">
<h4 class="panel-title">Upload Transaction File
</h4>
<div class="panel-actions">
<a href="#" class="panel-action panel-action-toggle" data-panel-toggle></a><a href="#"
class="panel-action panel-action-dismiss" data-panel-dismiss></a>
</div>
</div>
<div class="panel-body">
<div class="form-group">
<div class="col-md-4">
<asp:FileUpload ID="fileUpload" runat="server" /><a href="../../../../doc/sample/BRNNP16852_2022012115.csv"> Download Sample File</a>
</div>
<div class="col-md-4">
<asp:Button ID="btnUpload" class="btn btn-primary" runat="server" Text="Upload File" OnClick="btnUpload_Click" />
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="panel panel-default recent-activites">
<div class="panel-heading">
<h4 class="panel-title">Uploaded Files
</h4>
</div>
<div class="panel-body">
<div id="rpt_grid" runat="server" class="gridDiv">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</form>
</body>
</html>

160
Swift.web/AgentPanel/UploadFIle/TranFile.aspx.cs

@ -0,0 +1,160 @@
using Swift.DAL.Remittance.TxnFileUpload;
using Swift.web.Component.Grid;
using Swift.web.Component.Grid.gridHelper;
using Swift.web.Library;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace Swift.web.AgentPanel.UploadFIle
{
public partial class TranFile : System.Web.UI.Page
{
protected const string GridName = "grdUploadedFiles";
const string ViewFunctionID = "90620000";
readonly RemittanceLibrary _sl = new RemittanceLibrary();
readonly TxnDao txnDao = new TxnDao();
private readonly SwiftGrid grid = new SwiftGrid();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
_sl.CheckSession();
Authenticate();
}
LoadFile();
}
private void Authenticate()
{
_sl.CheckAuthentication(ViewFunctionID);
}
private void LoadFile()
{
grid.FilterList = new List<GridFilter>
{
new GridFilter("ShowFileName", "File Name:", "LT"),
};
grid.ColumnList = new List<GridColumn>
{
new GridColumn("SN", "S.N.", "", "T"),
new GridColumn("ShowFileName", "File Name", "", "T"),
new GridColumn("UploadedDate", "Uploaded Date", "", "T"),
new GridColumn("TotalProcessedTxn", "No. of ProcessedTxn", "", "T"),
new GridColumn("TotalUnProcessedTxn", "No. of Not-ProcessedTxn", "", "T"),
new GridColumn("TotalInvalidTxn", "No. of InvalidTxn", "", "T")
};
grid.GridDataSource = SwiftGrid.GridDS.RemittanceDB;
grid.GridType = 1;
grid.InputPerRow = 4;
grid.GridName = GridName;
grid.ShowFilterForm = true;
grid.ShowPagingBar = true;
grid.DisableSorting = false;
grid.RowIdField = "UploadedFileId";
grid.AlwaysShowFilterForm = true;
grid.AllowCustomLink = true;
grid.AllowCustomLink = true;
var customLinkText = new StringBuilder();
customLinkText.Append("<input type=\"submit\" value=\"Show Transactions\" class=\"btn btn-info\" onclick=\"ShowTran(@UploadedFileId)\">");
grid.CustomLinkText = customLinkText.ToString();
grid.CustomLinkVariables = "UploadedFileId";
grid.ThisPage = "TranFile.aspx";
grid.SetComma();
grid.InputLabelOnLeftSide = true;
string sql = "proc_UploadedFileTxnHistory @flag='showFileList'";
rpt_grid.InnerHtml = grid.CreateGrid(sql);
}
protected void btnUpload_Click(object sender, EventArgs e)
{
string msg = "";
string agentCode = "IME" + GetStatic.ReadSession("mapCodeDom", "").ToString();
if (fileUpload.FileContent.Length >= 1000000)
msg = "File size must be less than 1 mb";
else if (fileUpload.FileContent.Length > 0)
{
var fileName = fileUpload.FileName;
var dbResult = txnDao.GetFileName(fileName);
if (dbResult.ErrorCode != "0")
msg = dbResult.Msg;
else
{
string fileExt = Path.GetExtension(fileName.ToString()).ToLower();
if (fileExt == ".csv")
{
string dirPath = Server.MapPath("~") + "doc\\FileUpload\\" + GetStatic.GetAgent();
if (!Directory.Exists(dirPath))
Directory.CreateDirectory(dirPath);
string path = dirPath + "\\" + fileName;
if (File.Exists(path))
File.Delete(path);
fileUpload.SaveAs(path);
string[] defaultHeaders = new string[24];
defaultHeaders[0] = "partnerid";
defaultHeaders[1] = "pinno";
defaultHeaders[2] = "customername";
defaultHeaders[3] = "customeraddress";
defaultHeaders[4] = "customercontact";
defaultHeaders[5] = "customercity";
defaultHeaders[6] = "customeridnumber";
defaultHeaders[7] = "customeridtype";
defaultHeaders[8] = "benename";
defaultHeaders[9] = "beneaddress";
defaultHeaders[10] = "benecontact";
defaultHeaders[11] = "beneid";
defaultHeaders[12] = "receivingamount";
defaultHeaders[13] = "transactiondate";
defaultHeaders[14] = "payoutlocationid";
defaultHeaders[15] = "paymentmethod";
defaultHeaders[16] = "bankname";
defaultHeaders[17] = "bankbranchname";
defaultHeaders[18] = "bankaccountnumber";
defaultHeaders[19] = "remittancereason";
defaultHeaders[20] = "relationship";
defaultHeaders[21] = "sourceoffund";
defaultHeaders[22] = "settlementrate";
defaultHeaders[23] = "sendingcountry";
// defaultHeaders[24] = "receivingcountry";
var xml = GetStatic.GetCSVFileInXML(path, defaultHeaders);
if (xml.Length < 23)
msg = "File has mis-matched columns !!";
else
{
dbResult = txnDao.InsertData(GetStatic.GetUser(), fileName, agentCode, xml);
msg = dbResult.Msg;
}
// File.Delete(path);
}
else
msg = "Invalid file format !!";
}
}
else
msg = "You must choose a file for uploading process !!";
GetStatic.AlertMessage(this, msg);
LoadFile();
}
}
}

53
Swift.web/AgentPanel/UploadFIle/TranFile.aspx.designer.cs

@ -0,0 +1,53 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Swift.web.AgentPanel.UploadFIle
{
public partial class TranFile
{
/// <summary>
/// form1 control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary>
/// fileUpload control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.FileUpload fileUpload;
/// <summary>
/// btnUpload control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Button btnUpload;
/// <summary>
/// rpt_grid control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlGenericControl rpt_grid;
}
}

125
Swift.web/AgentPanel/UploadFIle/TxnList.aspx

@ -0,0 +1,125 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TxnList.aspx.cs" Inherits="Swift.web.AgentPanel.UploadFIle.TxnList" %>
<%@ Register TagPrefix="cc1" Namespace="AjaxControlToolkit" Assembly="AjaxControlToolkit, Version=3.0.20820.16598, Culture=neutral, PublicKeyToken=28f01b0e84b6d53e" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<link href="/ui/bootstrap/css/bootstrap.min.css" rel="stylesheet" />
<link href="/ui/font-awesome/css/font-awesome.min.css" rel="stylesheet" />
<link href="/ui/css/style.css" rel="stylesheet" />
<script src="/ui/js/jquery.min.js"></script>
<script src="/ui/bootstrap/js/bootstrap.min.js"></script>
<script src="/js/functions.js"></script>
<script type="text/javascript">
function CheckAll(obj) {
var cboxes = document.getElementsByName("chkId");
for (var i = 0; i < cboxes.length; i++) {
if (cboxes[i].checked == true) {
cboxes[i].checked = false;
}
else {
cboxes[i].checked = true;
}
}
}
function EditTran(RowId) {
event.preventDefault();
window.location.href = "../UploadFIle/InvalidTxn.aspx?RowId=" + RowId;
}
function DeleteTran(RowId, UploadedFileId) {
if (confirm("Are you sure you want to delete this transaction?")) {
$.ajax({
type: "POST",
url: "TxnList.aspx/DeleteRow",
data: "{'rowId': '" + RowId + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (response) {
window.location.href = "../UploadFIle/TxnList.aspx?IsDelete='true'&UploadedFileId=" + UploadedFileId;
},
});
}
else {
return false;
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="script" runat="server"></asp:ScriptManager>
<div class="page-wrapper">
<div class="row">
<div class="col-sm-12">
<div class="page-title">
<h1></h1>
<ol class="breadcrumb">
<li><a href="../../../Front.aspx" target="mainFrame"><i class="fa fa-home"></i></a></li>
<li><a href="#">Transaction</a></li>
<li><a href="#">Transaction List</a></li>
</ol>
</div>
</div>
</div>
<div class="report-tab">
<div class="listtabs">
<ul class="nav nav-tabs" role="tablist">
<li><a href="../UploadFile/TranFile.aspx">Uploaded Files</a></li>
<li role="presentation" class="active"><a href="#">Transactions</a></li>
</ul>
</div>
<div class="row">
<div class="col-md-12">
<div class="panel panel-default recent-activites">
<div class="panel-heading">
<h4 class="panel-title">Transaction List
</h4>
<div class="panel-actions">
<a href="#" class="panel-action panel-action-toggle" data-panel-toggle></a><a href="#"
class="panel-action panel-action-dismiss" data-panel-dismiss></a>
</div>
</div>
<div class="panel-body">
<div class="form-group">
<div class="col-md-12">
<asp:RadioButton ID="showUnProcessed" Checked="true" GroupName="filter" Text="Not-Processed" runat="server"
AutoPostBack="true" OnCheckedChanged="showUnProcessed_CheckedChanged" />
<asp:RadioButton ID="showProcessed" GroupName="filter" Text="Processed" runat="server"
AutoPostBack="true" OnCheckedChanged="showProcessed_CheckedChanged" />
<asp:RadioButton ID="showInvalid" GroupName="filter" Text="Invalid" runat="server"
AutoPostBack="true" OnCheckedChanged="showInvalid_CheckedChanged" />
</div>
</div>
<div class="form-group">
<div class="col-md-12">
<div class="table-responsive" style="overflow: scroll;">
<div id="tblGrid" runat="server">
</div>
</div>
</div>
</div>
<div class="form-group" id="processbtn" runat="server">
<div class="col-md-12">
<asp:Button ID="btnProcessTxn" runat="server" CssClass="btn btn-success" Text="Process Transaction" OnClick="btnProcessTxn_Click" />
<cc1:ConfirmButtonExtender ID="ConfirmButtonExtender1" runat="server"
ConfirmText="Are you sure want to proceed?" Enabled="True" TargetControlID="btnProcessTxn">
</cc1:ConfirmButtonExtender>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</form>
</body>
</html>

181
Swift.web/AgentPanel/UploadFIle/TxnList.aspx.cs

@ -0,0 +1,181 @@
using Swift.DAL.Remittance.TxnFileUpload;
using Swift.web.Library;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace Swift.web.AgentPanel.UploadFIle
{
public partial class TxnList : System.Web.UI.Page
{
const string ViewFunctionID = "90620000";
readonly RemittanceLibrary _sl = new RemittanceLibrary();
readonly TxnDao txnDao = new TxnDao();
DataTable dt = new DataTable();
private string rowIds = "";
int index;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
_sl.CheckSession();
Authenticate();
index = 1;
LoadTran("Unprocessed");
}
rowIds = (Request.Form["chkId"] ?? "").ToString();
}
private void Authenticate()
{
_sl.CheckAuthentication(ViewFunctionID);
}
private void LoadTran(string txnType)
{
var UploadedFileId = GetStatic.ReadQueryString("UploadedFileId", "");
if (!string.IsNullOrEmpty(GetStatic.ReadQueryString("IsDelete", "")) && index == 1)
{
txnType = "Invalid";
index = 2;
}
dt = txnDao.ShowTxnList(UploadedFileId, txnType);
var str = new StringBuilder("");
str.Append("<table class='table table-bordered table-striped'>");
if (dt == null)
{
str.Append("<tr><td colspan='11' align='center' style='color:red'> No Record Found For Display !!</td> </tr></table>");
tblGrid.InnerHtml = str.ToString();
return;
}
else if (dt.Rows.Count <= 0)
{
str.Append("<thead><tr>");
for (var i = 0; i < dt.Columns.Count; i++)
{
processbtn.Visible = false;
showUnProcessed.Checked = false;
showProcessed.Checked = false;
showInvalid.Checked = false;
if (txnType.Equals("Unprocessed"))
showUnProcessed.Checked = true;
else if (txnType.Equals("Processed"))
showProcessed.Checked = true;
else if (txnType.Equals("Invalid"))
showInvalid.Checked = true;
str.Append(string.Format("<th><div align=\"left\">{0}</div></th>", dt.Columns[i]));
}
str.Append("</tr></thead><tbody><tr><td colspan='17' align='center' style='color:red'> No Record Found For Display !!</td> </tr></tbody></table>");
tblGrid.InnerHtml = str.ToString();
return;
}
str.Append("<thead><tr>");
for (var i = 0; i < dt.Columns.Count; i++)
{
if (i == 1)
{
processbtn.Visible = false;
showUnProcessed.Checked = false;
showProcessed.Checked = false;
showInvalid.Checked = false;
if (txnType.Equals("Unprocessed"))
{
str.Append("<th><a href = 'javascript:void(0);' onclick = 'CheckAll(this)' >√|×</a></th>");
processbtn.Visible = true;
showUnProcessed.Checked = true;
}
else if (txnType.Equals("Processed"))
{
showProcessed.Checked = true;
}
else if (txnType.Equals("Invalid"))
{
str.Append("<th></th>");
showInvalid.Checked = true;
}
continue;
}
str.Append(string.Format("<th><div align=\"left\">{0}</div></th>", dt.Columns[i]));
}
str.Append("</tr></thead><tbody>");
foreach (DataRow dr in dt.Rows)
{
str.Append("<tr>");
for (var i = 0; i < dt.Columns.Count; i++)
{
if (i == 1)
{
if (txnType.Equals("Unprocessed"))
str.Append("<td align='center'><input type='checkbox' id= 'chkId' name='chkId' value='" + dr["RowId"].ToString() + "'</td>");
else if (txnType.Equals("Invalid"))
{
str.Append("<td><a href ='#' onclick='DeleteTran(" + dr["RowId"].ToString() + "," + UploadedFileId + ")'><span class='action-icon'>" +
"<btn class='btn btn-xs btn-danger' data-toggle='tooltip' data-placement='top' title ='Delete'><i class='fa fa-trash' ></i></btn></span></a></td>");
}
continue;
}
str.Append("<td>" + dr[i].ToString() + "</td>");
}
str.Append("</tr>");
}
str.Append("</tbody></table>");
tblGrid.InnerHtml = str.ToString();
}
protected void btnProcessTxn_Click(object sender, EventArgs e)
{
if (rowIds.Length <= 0)
{
GetStatic.AlertMessage(Page, "Please choose at least one transaction for process");
return;
}
var dbResult = txnDao.ProcessTxn(GetStatic.GetUser(), rowIds);
if (dbResult.ErrorCode != "0")
{
GetStatic.AlertMessage(Page, dbResult.Msg);
return;
}
else
{
GetStatic.AlertMessage(Page, dbResult.Msg);
LoadTran("Processed");
}
}
protected void showProcessed_CheckedChanged(object sender, EventArgs e)
{
LoadTran("Processed");
}
protected void showUnProcessed_CheckedChanged(object sender, EventArgs e)
{
LoadTran("Unprocessed");
}
protected void showInvalid_CheckedChanged(object sender, EventArgs e)
{
LoadTran("Invalid");
}
[System.Web.Services.WebMethod]
public static void DeleteRow(string rowId)
{
var txnDao = new TxnDao();
var dbResult = txnDao.DeleteTxn(GetStatic.GetUser(), rowId);
}
}
}

98
Swift.web/AgentPanel/UploadFIle/TxnList.aspx.designer.cs

@ -0,0 +1,98 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Swift.web.AgentPanel.UploadFIle
{
public partial class TxnList
{
/// <summary>
/// form1 control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlForm form1;
/// <summary>
/// script control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.ScriptManager script;
/// <summary>
/// showUnProcessed control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.RadioButton showUnProcessed;
/// <summary>
/// showProcessed control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.RadioButton showProcessed;
/// <summary>
/// showInvalid control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.RadioButton showInvalid;
/// <summary>
/// tblGrid control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlGenericControl tblGrid;
/// <summary>
/// processbtn control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.HtmlControls.HtmlGenericControl processbtn;
/// <summary>
/// btnProcessTxn control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Button btnProcessTxn;
/// <summary>
/// ConfirmButtonExtender1 control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::AjaxControlToolkit.ConfirmButtonExtender ConfirmButtonExtender1;
}
}

143
Swift.web/Library/GetStatic.cs

@ -1693,7 +1693,7 @@ namespace Swift.web.Library
{
if (HttpContext.Current.Session["message"] == null)
{
//CallBackJs1(page, "Remove Message", "window.parent.RemoveMessageBox();");
//CallBackJs1(page, "Remove Message", "SetMessageBox();");
return;
}
@ -2660,22 +2660,143 @@ namespace Swift.web.Library
{
return MimeTypes.MimeTypeMap.GetExtension(contentType);
}
public static string GetCSVFileInXML(string path, string[] defaultHeaders, bool hasHeader = true)
{
var columnList = new ArrayList();
var sb = new StringBuilder("<root>");
using (CsvReader reader = new CsvReader(path))
{
foreach (string[] values in reader.RowEnumerator)
{
defaultHeaders = defaultHeaders.Select(a => a.Trim()).ToArray().Select(s => s.ToLowerInvariant()).ToArray();
var fileHeaders = values.Select(a => a.Trim()).ToArray().Select(s => s.ToLowerInvariant()).ToArray();
var areEqual = Enumerable.SequenceEqual(defaultHeaders, fileHeaders);
if (hasHeader)
{
if (areEqual)
{
foreach (var item in defaultHeaders)
{
columnList.Add(item);
}
columnList.Add("trantype");
columnList.Add("invalidreason");
hasHeader = false;
continue;
}
else
break;
}
if (values.Length > 0)
{
var trimValues = values.Select(a => a.Trim()).ToArray();
bool isFirstLoop = true;
bool isInvalid = false;
string misMatchedColumn = "";
sb.Append("<row>");
for (int i = 0; i < trimValues.Length; i++)
{
//mandatory fields
if (isFirstLoop && (string.IsNullOrEmpty(trimValues[0]) || !IsValidPartner(trimValues[0]) || string.IsNullOrEmpty(trimValues[1]) || string.IsNullOrEmpty(trimValues[2]) || string.IsNullOrEmpty(trimValues[3]) ||
string.IsNullOrEmpty(trimValues[4]) || string.IsNullOrEmpty(trimValues[6]) || string.IsNullOrEmpty(trimValues[7]) || string.IsNullOrEmpty(trimValues[8]) ||
string.IsNullOrEmpty(trimValues[9]) || string.IsNullOrEmpty(trimValues[12]) || string.IsNullOrEmpty(trimValues[13]) || !IsValidDate(trimValues[13]) ||
string.IsNullOrEmpty(trimValues[15]) || !IsValidPaymentMethod(trimValues[15]) || (trimValues[15].ToLower().Equals("w") && (!IsValidNumber(trimValues[10]) || trimValues[14].ToLower() != "imepay")) ||
(trimValues[15].ToLower().Equals("b") && (string.IsNullOrEmpty(trimValues[14]) || string.IsNullOrEmpty(trimValues[16]) || string.IsNullOrEmpty(trimValues[18]) || !IsValidBankid(trimValues[14]))) ||
string.IsNullOrEmpty(trimValues[19]) || string.IsNullOrEmpty(trimValues[20]) || (IsRateRequiredPartner(trimValues[0]) && string.IsNullOrEmpty(trimValues[22])) || string.IsNullOrEmpty(trimValues[23])))
{
isInvalid = true;
isFirstLoop = false;
}
// to assign invalidreason for empty columns values
if (string.IsNullOrEmpty(trimValues[i]) && (i == 0 || i == 1 || i == 2 || i == 3 || i == 4 || i == 6 || i == 7 || i == 8
|| i == 9 || i == 12 || i == 13 || i == 15 || i == 19 || i == 20))
misMatchedColumn += string.IsNullOrEmpty(misMatchedColumn) ? columnList[i].ToString() : ',' + columnList[i].ToString();
// to assign invalidreason for invalid columns values
else if ((i == 0 && !IsValidPartner(trimValues[0])) || (i == 10 && trimValues[15].ToLower().Equals("w") && !IsValidNumber(trimValues[10])) ||
(i == 13 && !IsValidDate(trimValues[13])) || (i == 14 && trimValues[15].ToLower().Equals("w") && trimValues[14].ToLower() != "imepay") ||
(i == 14 && trimValues[15].ToLower().Equals("b") && string.IsNullOrEmpty(trimValues[14])) || (i == 15 && !IsValidPaymentMethod(trimValues[15])) ||
(i == 16 && trimValues[15].ToLower().Equals("b") && string.IsNullOrEmpty(trimValues[16])) || (i == 18 && trimValues[15].ToLower().Equals("b") && string.IsNullOrEmpty(trimValues[18])) ||
(i == 14 && trimValues[15].ToLower().Equals("b") && !IsValidBankid(trimValues[14])) || (i == 22 && IsRateRequiredPartner(trimValues[0]) && string.IsNullOrEmpty(trimValues[22])) || string.IsNullOrEmpty(trimValues[23]))
{
misMatchedColumn += string.IsNullOrEmpty(misMatchedColumn) ? columnList[i].ToString() : ',' + columnList[i].ToString();
}
sb.Append(string.Format(" <{0}>{1}</{0}>", columnList[i], values[i]));
}
if (isInvalid)
sb.Append(string.Format(" <{0}>{1}</{0}>", columnList[24], "Invalid"));
else
sb.Append(string.Format(" <{0}>{1}</{0}>", columnList[24], "Valid"));
public static ApiSecretKeys GetKeys()
sb.Append(string.Format(" <{0}>{1}</{0}>", columnList[25], misMatchedColumn));
sb.Append(" </row>");
}
}
}
sb.Append("</root>");
return sb.ToString();
}
public static bool IsValidPaymentMethod(string name)
{
string[] nameArray = { "c", "b", "w" };
if (Array.Exists(nameArray, element => element == name.ToLower()))
return true;
return false;
}
public static bool IsValidNumber(string number)
{
if (Regex.Match(number, @"^9(61|62|74|75|80|81|82|84|85|86|88)[0-9]{7}$").Success)
return true;
return false;
}
public static bool IsValidDate(string date)
{
using (var cryptoProvider = new RNGCryptoServiceProvider())
string[] format = { "yyyy-mm-dd" };
DateTime parsedDateTime;
if (DateTime.TryParseExact(date, format, System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.NoCurrentDateDefault, out parsedDateTime))
return true;
return false;
}
public static bool IsValidPartner(string partnerId)
{
var db = new RemittanceDao();
var sql = "EXEC proc_UploadedFileTxnHistory @flag = 'checkPartner', @partnerId = '" + partnerId + "'";
var dbResult = db.ParseDbResult(sql);
if (dbResult.ErrorCode == "0")
return true;
return false;
}
public static bool IsRateRequiredPartner(string partnerId)
{
var rateRequiredPartners = ConfigurationManager.AppSettings["rate_required_partners"];
List<string> lst = new List<string>();
if (rateRequiredPartners != null)
{
ApiSecretKeys model = new ApiSecretKeys();
var APPID = Guid.NewGuid();
lst = rateRequiredPartners.Split('|').ToList();
byte[] secretKeyByteArray = new byte[32]; //256 bit
cryptoProvider.GetBytes(secretKeyByteArray);
var APIKey = Convert.ToBase64String(secretKeyByteArray);
model.ApiKey = APIKey;
model.AppId = Convert.ToString(APPID);
if (lst.Contains(partnerId))
return true;
return (model);
}
return false;
}
public static bool IsValidBankid(string bankId)
{
if (string.IsNullOrEmpty(bankId))
return false;
var db = new RemittanceDao();
var sql = "EXEC proc_UploadedFileTxnHistory @flag = 'checkbankCode', @partnerId = '" + bankId + "'";
var dbResult = db.ParseDbResult(sql);
if (dbResult.ErrorCode == "0")
return true;
return false;
}
}
}

16
Swift.web/Swift.web.csproj

@ -396,6 +396,7 @@
<Content Include="AgentPanel\Administration\CustomerSetup\List.aspx" />
<Content Include="AgentPanel\CustomerInquery\InquiryReport.aspx" />
<Content Include="AgentPanel\CustomerInquery\List.aspx" />
<Content Include="AgentPanel\UploadFIle\TranFile.aspx" />
<Content Include="AgentPanel\International\Calculator\Calculator.aspx" />
<Content Include="AgentPanel\International\SendMoneyv2\Calculator.aspx" />
<Content Include="AgentPanel\International\SendMoneyv2\Confirm.aspx" />
@ -438,6 +439,7 @@
<Content Include="AgentPanel\TransferToVault\ApproveTransferToVaultList.aspx" />
<Content Include="AgentPanel\TransferToVault\RequestedTransferToVaultList.aspx" />
<Content Include="AgentPanel\TransferToVault\TransferToVaultManage.aspx" />
<Content Include="AgentPanel\UploadFIle\TxnList.aspx" />
<Content Include="BillVoucher\CustomerDeposit\Upload.aspx" />
<Content Include="BillVoucher\DollarVoucherEntry\List.aspx" />
<Content Include="BillVoucher\DollarVoucherEntry\VoucherEntry.aspx" />
@ -4486,6 +4488,13 @@
<Compile Include="AgentPanel\CustomerInquery\List.aspx.designer.cs">
<DependentUpon>List.aspx</DependentUpon>
</Compile>
<Compile Include="AgentPanel\UploadFIle\TranFile.aspx.cs">
<DependentUpon>TranFile.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="AgentPanel\UploadFIle\TranFile.aspx.designer.cs">
<DependentUpon>TranFile.aspx</DependentUpon>
</Compile>
<Compile Include="AgentPanel\International\Calculator\Calculator.aspx.cs">
<DependentUpon>Calculator.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
@ -4783,6 +4792,13 @@
<Compile Include="AgentPanel\TransferToVault\TransferToVaultManage.aspx.designer.cs">
<DependentUpon>TransferToVaultManage.aspx</DependentUpon>
</Compile>
<Compile Include="AgentPanel\UploadFIle\TxnList.aspx.cs">
<DependentUpon>TxnList.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="AgentPanel\UploadFIle\TxnList.aspx.designer.cs">
<DependentUpon>TxnList.aspx</DependentUpon>
</Compile>
<Compile Include="BillVoucher\CustomerDeposit\Upload.aspx.cs">
<DependentUpon>Upload.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>

Loading…
Cancel
Save