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.
 
 
 
 
 

112 lines
3.5 KiB

using Swift.DAL.SwiftDAL;
using System.Collections.Generic;
using System.Data;
using System.Web.Services;
namespace Swift.web.Component.AutoComplete
{
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
public class DataSource : System.Web.Services.WebService
{
private bool isRemit = false;
[WebMethod]
public List<ValueTextPair> GetList(string category, string searchText)
{
return MakeList(category, "", "", "", searchText);
}
[WebMethod]
public List<ValueTextPair> GetRemittanceList(string category, string searchText)
{
isRemit = true;
return MakeList(category, "", "", "", searchText);
}
[WebMethod]
public List<ValueTextPair> GetList1(string category, string param1, string searchText)
{
return MakeList(category, param1, "", "", searchText);
}
[WebMethod]
public List<ValueTextPair> GetList2(string category, string param1, string param2, string searchText)
{
return MakeList(category, param1, param2, "", searchText);
}
[WebMethod]
public List<ValueTextPair> GetList3(string category, string param1, string param2, string param3, string searchText)
{
return MakeList(category, param1, param2, param3, searchText);
}
private List<ValueTextPair> MakeList(string category, string param1, string param2, string param3, string searchText)
{
var itemList = new List<ValueTextPair>();
var db = new SwiftDao();
var dbremit = new RemittanceDao();
var sql = "EXEC proc_autocomplete @category=" + db.FilterString(category);
sql += ", @searchText=" + db.FilterString(searchText);
if (!string.IsNullOrWhiteSpace(param1))
{
sql += ", @param1=" + db.FilterString(param1);
}
if (!string.IsNullOrWhiteSpace(param2))
{
sql += ", @param2=" + db.FilterString(param2);
}
if (!string.IsNullOrWhiteSpace(param3))
{
sql += ", @param3=" + db.FilterString(param3);
}
var dt = new DataTable();
string cat = category.Split('-')[0];
if (cat.ToLower() == "remit")
{
sql = sql.Replace("remit-", "");
dt = dbremit.ExecuteDataset(sql).Tables[0];
}
else
dt = db.ExecuteDataset(sql).Tables[0];
//if (category == "acInfo" || category == "acInfoUSD")
// dt = db.ExecuteDataset(sql).Tables[0];
//else
// dt = dbremit.ExecuteDataset(sql).Tables[0];
foreach (DataRow row in dt.Rows)
{
itemList.Add(new ValueTextPair(row[0].ToString(), row[1].ToString()));
}
if (dt.Rows.Count == 0 && param1 == "NotClear")
{
itemList.Add(new ValueTextPair(searchText, searchText));
}
return itemList;
}
}
public class ValueTextPair
{
public string Id;
public string Value;
public ValueTextPair(string id, string value)
{
Id = id;
Value = value;
}
public ValueTextPair()
{
}
}
}