/* * Given a set of GTFS column of a table, * returns a list of column from the set with their * specification for the database. * Specification include: column datatype and can have null or not. */ private List <string> GetColumns(GTFSColumnSet gtfsColumnSet) { return(gtfsColumnSet .Select(column => $"{column.name} {column.type} " + $"{(column.primaryKey | !column.allowNull ? " NOT NULL " : " NULL")}") .ToList()); }
private List <string> GetPrimaryKeys(GTFSColumnSet gtfsColumnSet) { var primaryKeys = new List <string>(); foreach (var column in gtfsColumnSet) { if (column.primaryKey) { primaryKeys.Add(column.name); } } return(primaryKeys); }
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { var columnSet = new GTFSColumnSet(); while (reader.Read()) { switch (reader.TokenType) { case JsonToken.EndObject: return(columnSet); case JsonToken.PropertyName: var columnName = (string)reader.Value; reader.Read(); var column = serializer.Deserialize <GTFSColumn>(reader); column.name = columnName; columnSet.Add(column); break; } } return(columnSet); }