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