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.
 
 
 
 
 

167 lines
5.0 KiB

using System;
using System.Configuration;
using System.Data;
using System.IO;
using System.Security;
using System.Xml.Serialization;
namespace Swift.DAL.BL.Helper.ThirdParty
{
public class ApiUtility : XMLDataTableUtilityAPI
{
public static string GetDateToSqlDate(string strDate)
{
var date = DateTime.Parse(strDate);
return date.ToString("yyyy-MM-dd");
}
public static string GetDateInCEFormat(string strDate)
{
var date = DateTime.Parse(strDate);
return date.ToString("dd/MM/yyyy");
}
public static string GetDateToShortString(string strDate)
{
var date = DateTime.Parse(strDate);
return date.ToShortDateString();
}
public static string ReadWebConfig(string key, string defValue)
{
return (ConfigurationSettings.AppSettings[key] ?? defValue);
}
public static string ParseToValidXMLData(string data)
{
return SecurityElement.Escape(data);
}
public static ApiResult LogRequest(string user, string providerName, string methodName, string controlNo, string requestXml)
{
try
{
var sql = string.Format("EXEC proc_tpApiLogs @flag='i', @user={0}, @providerName='{1}', @methodName='{2}',@controlNo='{3}',@requestXml='{4}'", user, providerName, methodName, controlNo, requestXml.Replace("'", ""));
var db = new Dao();
return db.ParseDbResult(sql);
}
catch (Exception)
{
return new ApiResult();
}
}
public static ApiResult LogResponse(string rowId, string responseXml, string errorCode, string errorMessage)
{
try
{
var db = new Dao();
var sql = string.Format("EXEC proc_tpApiLogs @flag='u', @rowId='{0}',@responseXml='{1}',@errorCode='{2}',@errorMessage={3}", rowId, responseXml.Replace("'", ""), errorCode, db.FilterString(errorMessage));
return db.ParseDbResult(sql);
}
catch (Exception)
{
return new ApiResult();
}
}
public static ApiResult LogDataError(string rowId, string errorCode, string errorMessage)
{
try
{
var db = new Dao();
var sql = string.Format("EXEC proc_tpApiLogs @flag='e', @rowId='{0}',@errorCode='{1}',@errorMessage={2}", rowId, errorCode, db.FilterString(errorMessage));
return db.ParseDbResult(sql);
}
catch (Exception)
{
return new ApiResult();
}
}
}
public class XMLDataTableUtilityAPI
{
public static DataTable ParseXMLToDataTable(string xml)
{
if (string.IsNullOrWhiteSpace(xml))
{
return null;
}
DataSet ds = ParseXMLToDataSet(xml);
if (ds == null || ds.Tables.Count == 0)
return null;
return ds.Tables[0];
}
public static DataSet ParseXMLToDataSet(string xml)
{
if (string.IsNullOrWhiteSpace(xml))
{
return null;
}
DataSet ds = new DataSet(); ;
using (StringReader r = new StringReader(xml))
{
ds.ReadXml(r);
}
return ds;
}
public static DataRow ParseXMLToDataRow(string xml)
{
DataTable dt = ParseXMLToDataTable(xml);
if (dt == null || dt.Rows.Count == 0)
return null;
return dt.Rows[0];
}
public static string GetDataRowData(ref DataRow dr, string colName, string defVal)
{
if (ColumnExists(ref dr, colName))
{
return (dr[colName] ?? defVal).ToString();
}
return "";
}
public static string GetDataRowData(ref DataRow dr, string colName)
{
return GetDataRowData(ref dr, colName, "");
}
protected static bool ColumnExists(ref DataRow dr, string colName)
{
foreach (DataColumn dc in dr.Table.Columns)
{
if (dc.ColumnName.ToUpper().Equals(colName.ToUpper()))
{
return true;
}
}
return false;
}
public static 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;
}
}
}
}