using System;
|
using System.Data;
|
using System.Data.OleDb;
|
using System.IO;
|
using System.Runtime.Serialization.Json;
|
using System.Text;
|
using System.Text.RegularExpressions;
|
|
namespace GTech.Solution.Api.Common
|
{
|
public static class ConvertUtil
|
{
|
#region Basic
|
public static string errMsg = "";
|
public static int toInt(string str, int def)
|
{
|
return ConvertUtil.toInt(str, def, 0);
|
}
|
|
public static int toInt(object obj, int def, int t)
|
{
|
int ret = def;
|
try
|
{
|
ret = Convert.ToInt32(obj);
|
}
|
catch (Exception)
|
{
|
ret = def;
|
}
|
return ret;
|
}
|
|
public static string NVL(object obj)
|
{
|
string ret = "";
|
try
|
{
|
ret = Convert.ToString(obj);
|
}
|
catch (Exception)
|
{
|
ret = "";
|
}
|
return ret;
|
}
|
|
public static DateTime toDatetime(object obj, int fix)
|
{
|
DateTime dt = DateTime.Now.AddYears(fix);
|
try
|
{
|
dt = Convert.ToDateTime(obj);
|
if (dt.Year == 1)
|
dt = dt.AddYears(2000);
|
}
|
catch (Exception)
|
{
|
|
}
|
finally
|
{
|
if (dt == null)
|
dt = DateTime.Now.AddYears(fix);
|
}
|
return dt;
|
}
|
|
public static string IFEmptyToDefault(this string s, string _default)
|
{
|
string v = s;
|
if (string.IsNullOrEmpty(v))
|
{
|
v = _default;
|
}
|
return v;
|
}
|
|
public static bool TryToBool(this string s, bool _default)
|
{
|
bool v = _default;
|
if (s == null || !bool.TryParse(s, out v))
|
{
|
v = _default;
|
}
|
return v;
|
}
|
|
public static int TryToInt(this string s, int _default)
|
{
|
int v = _default;
|
if (s == null || !int.TryParse(s, out v))
|
{
|
v = _default;
|
}
|
return v;
|
}
|
|
public static long TryToLong(this object s, long _default)
|
{
|
long v = _default;
|
if (s == null || !long.TryParse(s + "", out v))
|
{
|
v = _default;
|
}
|
return v;
|
}
|
|
public static T JsonParse<T>(string jsonString)
|
{
|
DataContractJsonSerializer ds = new DataContractJsonSerializer(typeof(T));
|
MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));
|
|
return (T)ds.ReadObject(ms);
|
}
|
|
public static DataTable getTableFromXls(string fileName, string range, string sheetname)
|
{
|
string connStr = "";
|
if (fileName.IndexOf(".xlsx") >= 0)
|
{
|
connStr = "Provider=Microsoft.Jet.OLEDB.12.0;Data Source=" + fileName + ";Extended Properties='Excel 12.0;HDR=Yes;IMEX=1;'";
|
}
|
else
|
{
|
connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileName + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";
|
}
|
|
string sheetna = "Sheet1";
|
if (!sheetname.Equals(""))
|
{
|
sheetna = sheetname;
|
}
|
string sql = "select * from [" + sheetna + "$" + range + "]";
|
|
OleDbDataAdapter da = new OleDbDataAdapter(sql, connStr);
|
DataSet ds = new DataSet();
|
try
|
{
|
da.Fill(ds, "datatable");
|
errMsg = "";
|
return ds.Tables[0];
|
}
|
catch (Exception ex)
|
{
|
errMsg = ex.Message;
|
return null;
|
}
|
}
|
|
public static int safeToInt(object anysome)
|
{
|
if (anysome == null) return 0;
|
else if (string.IsNullOrEmpty(anysome.ToString()))
|
{
|
return 0;
|
}
|
else
|
{
|
int data = 0;
|
string sdata = anysome.ToString();
|
if (sdata.Contains("%"))
|
{
|
sdata = sdata.Replace("%", "");
|
try
|
{
|
data = int.Parse(sdata) / 100;
|
}
|
catch { data = 0; }
|
}
|
else
|
{
|
try
|
{
|
data = int.Parse(sdata);
|
}
|
catch { data = 0; }
|
}
|
return data;
|
}
|
}
|
|
public static double safeToDouble(object anysome)
|
{
|
if (anysome == null) return 0.0;
|
else if (string.IsNullOrEmpty(anysome.ToString()))
|
{
|
return 0.0;
|
}
|
else
|
{
|
double data = 0;
|
string sdata = anysome.ToString();
|
if (sdata.Contains("%"))
|
{
|
sdata = sdata.Replace("%", "");
|
try
|
{
|
data = double.Parse(sdata) / 100.0;
|
}
|
catch { data = 0; }
|
}
|
else
|
{
|
try
|
{
|
data = double.Parse(sdata);
|
}
|
catch { data = 0; }
|
}
|
return data;
|
}
|
}
|
|
public static DateTime safeToDatetime(object anysome)
|
{
|
if (anysome == null || string.IsNullOrEmpty(anysome.ToString())) return new DateTime(1900, 1, 1, 0, 0, 0);
|
else
|
{
|
DateTime dt = new DateTime(1900, 1, 1, 0, 0, 0);
|
try
|
{
|
dt = DateTime.Parse(anysome.ToString());
|
}
|
catch { dt = new DateTime(1900, 1, 1, 0, 0, 0); }
|
return dt;
|
}
|
}
|
|
public static string safeToString(object anysome)
|
{
|
string val = "";
|
try
|
{
|
val = double.Parse(anysome.ToString()).ToString();
|
}
|
catch
|
{
|
val = anysome.ToString();
|
}
|
return val;
|
}
|
|
public static DataTable createDataTable(string[] tts)
|
{
|
DataTable data = new DataTable();
|
foreach (string pi in tts)
|
{
|
DataColumn dc = new DataColumn(pi, typeof(string));
|
dc.Caption = pi;
|
data.Columns.Add(dc);
|
}
|
return data;
|
}
|
|
#endregion
|
|
#region DateTime Tool
|
public static DateTime? SafeToConvertDatatime(string datetime)
|
{
|
DateTime? result = null;
|
try
|
{
|
if (!String.IsNullOrEmpty(datetime))
|
result = DateTime.Parse(datetime);
|
}
|
catch (Exception ex)
|
{
|
throw ex;
|
}
|
return result;
|
}
|
#endregion
|
|
internal static object SafeToDecimal(string txtMinOperationVolume, string v, out object message)
|
{
|
throw new NotImplementedException();
|
}
|
}
|
}
|