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(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(); } } }