public static string GenerateMapping(IList <IDev2Definition> defs, enDev2ArgumentType typeOf)
        {
            var b = new DefinitionBuilder {
                ArgumentType = typeOf, Definitions = defs
            };

            return(b.Generate());
        }
示例#2
0
        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());
        }
示例#3
0
        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);
            }
        }