public void JsonFormaterTest() { string str = "[{\"id\":\"1\",\"name\":\"id1\",\"Time\":\"2016-10-10 00:00:00\"},{\"id\":\"2\",\"name\":\"id2\",\"Time\":\"2016-10-10 00:00:00\"}]"; DataTable dt = JsonFormater.ConvertToDataTable(str, "Time", "yyyy-MM-dd HH:mm:ss"); Console.WriteLine(dt.Columns[2].DataType); Assert.AreEqual(dt.Columns[2].DataType, typeof(DateTime)); //if (dt.Columns[2].DataType == typeof(DateTime) Assert.AreEqual(dt.Columns.Count, 3, "Column count no match"); Assert.AreEqual(dt.Rows.Count, 2, "Row count no match"); string str2 = JsonFormater.ConvertToString(dt); Assert.AreEqual <string>(str, str2, "DataTable to string data error."); }
private DataTable GetFromFtp() { DataTable dt = null; logger.DebugFormat("IP: [{0}], Port: [{1}], User: [{2}]", etlSetting.IP, etlSetting.Port, etlSetting.UserName); FtpProxy ftPxy = new FtpProxy(etlSetting.IP, etlSetting.Port, etlSetting.UserName, etlSetting.Pwd); logger.InfoFormat("Download file : {0}", etlSetting.FileLocal); byte[] datas = ftPxy.Download(etlSetting.FileLocal); logger.DebugFormat("Downloaded file size : {0}", datas.Length); string str = System.Text.Encoding.Default.GetString(datas); string fiFor = etlSetting.FileFormat.ToUpper(); logger.InfoFormat("Source file format : {0}", fiFor); try { if (fiFor == "JSON") { dt = JsonFormater.ConvertToDataTable(str, etlSetting.DbTimeColumn); } else if (fiFor == "CSV") { dt = CsvFormater.ConvertToDataTable(str, etlSetting.DbTimeColumn); } if (dt == null) { throw new Exception("Convert the DataTable is null."); } } catch (Exception ex) { throw new Exception("Source file convert to DataTable fail.", ex); } logger.DebugFormat("Convert to DataTable row count : {0}", dt.Rows.Count); return(dt); }