using System; using System.Data; using System.Text; namespace AGVSystem { // Token: 0x0200000B RID: 11 internal class Senddataset { // Token: 0x060000A0 RID: 160 RVA: 0x00011BD8 File Offset: 0x0000FDD8 public static string DatasetToJson(DataSet dataSet) { string text = "{"; foreach (object obj in dataSet.Tables) { DataTable dataTable = (DataTable)obj; text = string.Concat(new string[] { text, "\"", dataTable.TableName, "\":", Senddataset.DataTableToJson(dataTable), "," }); } text = text.TrimEnd(new char[] { ',' }); return text + "}"; } // Token: 0x060000A1 RID: 161 RVA: 0x00011C94 File Offset: 0x0000FE94 public static string DataTableToJson(DataTable dt) { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.Append("["); DataRowCollection rows = dt.Rows; for (int i = 0; i < rows.Count; i++) { stringBuilder.Append("{"); for (int j = 0; j < dt.Columns.Count; j++) { string columnName = dt.Columns[j].ColumnName; string text = rows[i][j].ToString(); Type dataType = dt.Columns[j].DataType; stringBuilder.Append("\"" + columnName + "\":"); text = Senddataset.StringFormat(text, dataType); bool flag = j < dt.Columns.Count - 1; if (flag) { stringBuilder.Append(text + ","); } else { stringBuilder.Append(text); } } stringBuilder.Append("},"); } stringBuilder.Remove(stringBuilder.Length - 1, 1); stringBuilder.Append("]"); return stringBuilder.ToString(); } // Token: 0x060000A2 RID: 162 RVA: 0x00011DD4 File Offset: 0x0000FFD4 private static string StringFormat(string str, Type type) { bool flag = type == typeof(string); if (flag) { str = Senddataset.StringToJson(str); str = "\"" + str + "\""; } else { bool flag2 = type == typeof(DateTime); if (flag2) { str = "\"" + str + "\""; } else { bool flag3 = type == typeof(bool); if (flag3) { str = str.ToLower(); } else { bool flag4 = type != typeof(string) && string.IsNullOrEmpty(str); if (flag4) { str = "\"" + str + "\""; } } } } return str; } // Token: 0x060000A3 RID: 163 RVA: 0x00011E98 File Offset: 0x00010098 private static string StringToJson(string s) { StringBuilder stringBuilder = new StringBuilder(); int i = 0; while (i < s.Length) { char c = s.ToCharArray()[i]; char c2 = c; char c3 = c2; if (c3 <= '"') { switch (c3) { case '\b': stringBuilder.Append("\\b"); break; case '\t': stringBuilder.Append("\\t"); break; case '\n': stringBuilder.Append("\\n"); break; case '\v': goto IL_CA; case '\f': stringBuilder.Append("\\f"); break; case '\r': stringBuilder.Append("\\r"); break; default: if (c3 != '"') { goto IL_CA; } stringBuilder.Append("\\\""); break; } } else if (c3 != '/') { if (c3 != '\\') { goto IL_CA; } stringBuilder.Append("\\\\"); } else { stringBuilder.Append("\\/"); } IL_D4: i++; continue; IL_CA: stringBuilder.Append(c); goto IL_D4; } return stringBuilder.ToString(); } } }