/// <summary> /// Reads the JSON representation of the object. /// </summary> /// <param name="reader">The <see cref="JsonReader"/> to read from.</param> /// <param name="objectType">Type of the object.</param> /// <param name="existingValue">The existing value of object being read.</param> /// <param name="serializer">The calling serializer.</param> /// <returns>The object value.</returns> public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { // handle typed datasets DataSet ds = (objectType == typeof(DataSet)) ? new DataSet() : (DataSet)Activator.CreateInstance(objectType); DataTableConverter converter = new DataTableConverter(); CheckedRead(reader); while (reader.TokenType == JsonToken.PropertyName) { DataTable dt = ds.Tables[(string)reader.Value]; bool exists = (dt != null); dt = (DataTable)converter.ReadJson(reader, typeof(DataTable), dt, serializer); if (!exists) ds.Tables.Add(dt); CheckedRead(reader); } return ds; }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { var dataResult = value as DataResult; #region 序列化DataResult对象 writer.WriteStartObject(); // 写total属性 writer.WritePropertyName("total"); serializer.Serialize(writer, dataResult.Total); // 写pagecount属性 writer.WritePropertyName("pagecount"); serializer.Serialize(writer, dataResult.PageCount); // 写pageindex属性 writer.WritePropertyName("pageindex"); serializer.Serialize(writer, dataResult.PageIndex); // 写rows属性 var converter = new DataTableConverter(); writer.WritePropertyName("rows"); converter.WriteJson(writer, dataResult.Data, serializer); writer.WriteEndObject(); #endregion }
/// <summary> /// Writes the JSON representation of the object. /// </summary> /// <param name="writer">The <see cref="JsonWriter"/> to write to.</param> /// <param name="value">The value.</param> /// <param name="serializer">The calling serializer.</param> public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { DataSet dataSet = (DataSet)value; DefaultContractResolver resolver = serializer.ContractResolver as DefaultContractResolver; DataTableConverter converter = new DataTableConverter(); writer.WriteStartObject(); foreach (DataTable table in dataSet.Tables) { writer.WritePropertyName((resolver != null) ? resolver.GetResolvedPropertyName(table.TableName) : table.TableName); converter.WriteJson(writer, table, serializer); } writer.WriteEndObject(); }
private DataTable findBookings() { List <Booking> booking = (sqliteContext.ExecuteQuery <Booking>("SELECT * FROM Booking")).ToList(); return(DataTableConverter.from(booking)); }
public void NullArrayDataRow() { DataRow[] adr = null; Assert.ThrowsException <ArgumentNullException>(() => DataTableConverter <Convertible> .ToEntities(adr)); }
public void NullIEnumerableDataRow() { IEnumerable <DataRow> idr = null; Assert.ThrowsException <ArgumentNullException>(() => DataTableConverter <Convertible> .ToEntities(idr)); }
public void DataRowCollectionNullColumnToPropertyMap() { //TODO: Figure out why this test fails even though it should be succeeding - This exception is thrown immediately and //manual testing confirms it is being thrown. Like seriously, what the hell is this even doing? Assert.ThrowsException <ArgumentNullException>(() => DataTableConverter <Convertible> .ToEntities(testTable.Value.Rows, null)); }
public void NullDataRowCollection() { DataRowCollection drc = null; Assert.ThrowsException <ArgumentNullException>(() => DataTableConverter <Convertible> .ToEntities(drc)); }
public void EmptyDataRowCollection() { DataTable dt = new DataTable(); Assert.ThrowsException <ArgumentException>(() => DataTableConverter <Convertible> .ToEntities(dt.Rows)); }
public void NullDataTable() { DataTable nullDt = null; Assert.ThrowsException <ArgumentNullException>(() => DataTableConverter <Convertible> .ToEntities(nullDt)); }