public static string GenerateMapping(IList <IDev2Definition> defs, enDev2ArgumentType typeOf) { var b = new DefinitionBuilder { ArgumentType = typeOf, Definitions = defs }; return(b.Generate()); }
public static string GenerateSerializableDefsFromDataList(string datalist, enDev2ColumnArgumentDirection direction) { DefinitionBuilder db = new DefinitionBuilder(); if (direction == enDev2ColumnArgumentDirection.Input) { db.ArgumentType = enDev2ArgumentType.Input; } else if (direction == enDev2ColumnArgumentDirection.Output) { db.ArgumentType = enDev2ArgumentType.Output; } db.Definitions = GenerateDefsFromDataList(datalist, direction); return(db.Generate()); }
private static async Task Run(Options options) { options.Validate(); var dbdProvider = new GithubDBDProvider(); var dbcProvider = new LocalDBCProvider(options.Directory); var dbs = Utils.GetFiles(options.Directory, "*.db2|*.dbc") .ToDictionary(Path.GetFileNameWithoutExtension); foreach (var db in dbs) { var dbcStream = await dbcProvider.StreamForTableName(db.Key); var dbdStream = await dbdProvider.StreamForTableName(db.Key); var dbReader = new DBReader(dbcStream); var builder = new DefinitionBuilder(db.Key, options.Build); var definition = builder.Generate(dbReader, dbdStream, dbs); var storage = dbReader.GetRecords(definition); if (storage.Count == 0) { Console.WriteLine($"Skipping {db.Key} - empty"); continue; } if (options.ExportType.HasFlag(ExportType.SQL)) { await DBObjectWriter.WriteToServer(options, builder, storage.Values); } if (options.ExportType.HasFlag(ExportType.CSV)) { await CSVObjectWriter.WriteToFile(options, builder, storage.Values); } } // append foreign keys to the database if (options.ExportType.HasFlag(ExportType.SQL) && options.ExportForeignKeys) { Console.WriteLine("Generating foreign keys"); await DBObjectWriter.WriteForeignKeys(options); } }