public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { var obj = JObject.Load(reader); var tableDescription = (TableDescription)serializer.ReferenceResolver.ResolveReference(serializer, (string)obj["$ref"]); var result = new TablePrescription(tableDescription); foreach (var item in obj["ColumnPrescriptions"]) { var columnDescriptionName = item.Value <string>("Column"); var valueFactoryPrescriptionName = item.Value <string>("Prescription"); var nullPercentage = item.Value <float?>("NULL"); var columnDescription = tableDescription.ColumnDescriptions.First(c => c.Name == columnDescriptionName); var valueFactoryPrescription = (ValueFactoryPrescription)serializer.ReferenceResolver.ResolveReference(serializer, valueFactoryPrescriptionName); var columnPrescription = new ColumnPrescription(columnDescription, valueFactoryPrescription, nullPercentage); result.AddColumn(columnPrescription); } return(result); }
public void AddTable(TablePrescription tablePrescription) => _TablePrescriptions.Add(Check.NotNull(nameof(tablePrescription), tablePrescription));