private void CreateTable(GenerateCommand command) { var tables = _tableRepository.GetAll(); var tableNames = command.AllTables ? tables.Select(t => t.Name).ToList() : TableHelper.ParseTableNames(command.TableNames); foreach (var tableName in tableNames) { var table = tables.First(f => f.Name == tableName); var columns = _tableRepository.GetColumns(tableName); var builder = new CreateTableChangeSetBuilder(table, columns); var changeSetCommand = new ChangeSetCommand(command.Author); var changeSet = builder.Build(changeSetCommand); var xml = changeSet.ToXml(); var path = Path.Combine(command.DirectoryPath, $"{ChangeSetCommand.Sequence:000}.{tableName.ToLower()}.create.xml"); FileHelper.Write(path, xml); ChangeSetCommand.Next(); foreach (var column in columns.Where(w => w.AutoIncrement)) { CreateSequence(command, changeSetCommand, table, column); } var foreignKeys = _tableRepository.GetForeignKeys(tableName); foreach (var foreignKey in foreignKeys) { AddForeignKeyConstraint(command, changeSetCommand, table, foreignKey); } } }
public void Build() { var table = new Table { Name = "GA_TIMESHEET" }; var columns = new List <Column> { new Column { Name = "ID", PrimaryKey = true, ForeignKey = false, Nullable = false, Type = ColumnType.Long, Length = null, Precision = 19, Scale = 0 }, new Column { Name = "TIMESHEET_ID", PrimaryKey = false, ForeignKey = true, Nullable = false, Type = ColumnType.Long, Length = null, Precision = 19, Scale = 0 } }; var builder = new CreateTableChangeSetBuilder(table, columns); var command = new ChangeSetCommand("altair.sossai"); var changeSet = builder.Build(command); Console.WriteLine(changeSet.ToXml()); }