Files

166 lines
3.3 KiB
C#

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