public static void SchemaMgrAddColumnShouldSuccess() { string tableName = "tableOne"; SchemaManager mgr = new SchemaManager(); SchemaDefinition s = mgr.SetSchema("test"); SchemaManagerResult r = mgr.AddTable(tableName); r = mgr.AddColumn(tableName, new Column("ColumnOne", DataTypes.ULong, false)); Expect.IsTrue(r.Success); }
public static void SchemaMgrAddTableShouldSuccess() { SchemaManager mgr = new SchemaManager(); SchemaDefinition s = mgr.SetSchema("test"); SchemaManagerResult r = mgr.AddTable("tableOne"); Expect.IsTrue(r.Success); TryDeleteSchema(s); }
public static void AddForeignKeyShouldFailIfColumnNotDefined() { SchemaManager mgr = new SchemaManager(); SchemaDefinition s = mgr.SetSchema("test"); mgr.AddTable("TableOne"); mgr.AddTable("ReferringTable"); SchemaManagerResult r = mgr.SetForeignKey("TableOne", "ReferringTable", "TableOneID"); Expect.IsFalse(r.Success); OutLine(r.Message, ConsoleColor.Yellow); TryDeleteSchema(s); }
private static SchemaManager GetTestSchemaManager() { SchemaManager mgr = new SchemaManager(); mgr.AddTable("Person"); mgr.AddColumn("Person", "Id", DataTypes.ULong); mgr.AddColumn("Person", "Name", DataTypes.String); mgr.AddTable("Employee"); mgr.AddColumn("Employee", "Id", DataTypes.ULong); mgr.AddColumn("Employee", "Salary", DataTypes.Decimal); SchemaManagerResult managerResult = mgr.SetForeignKey("Person", "Employee", "Id", "Id"); Expect.IsTrue(managerResult.Success, $"Message: {managerResult.Message}\r\nException: {managerResult.ExceptionMessage}"); return(mgr); }
private static void WriteSqlFile(SchemaManagerResult managerResult) { if (managerResult.DaoAssembly == null) { Message.PrintLine("Unable to locate Dao assembly for sql schema generation, specify dll argument", ConsoleColor.Red); } else { FileInfo sqlFile = new FileInfo(Arguments["sql"]); SqlDialect dialect = SqlDialect.MsSql; if (Arguments.Contains("dialect")) { dialect = (SqlDialect)Enum.Parse(typeof(SqlDialect), Arguments["dialect"]); } WriteSqlFile(managerResult.DaoAssembly, sqlFile, dialect); Message.PrintLine("Sql script written: {0}", sqlFile.FullName); } }
public static void GenerateDaoFromDbJs() { if (Arguments.Contains("root")) { DirectoryInfo rootDirectory = new DirectoryInfo(Arguments["root"]); if (!rootDirectory.Exists) { Message.PrintLine("Specified root directory does not exist: {0}", ConsoleColor.Red, rootDirectory.FullName); Environment.Exit(1); } FileInfo[] dbjs = rootDirectory.GetFiles("*.db.js", SearchOption.AllDirectories); if (dbjs.Length > 0) { if (dbjs.Length > 1) { Message.PrintLine("Multiple *.db.js files found", ConsoleColor.Red); if (!Arguments.Contains("s")) { Message.PrintLine("{0}", ConsoleColor.Yellow, dbjs.ToDelimited<FileInfo>(f => f.FullName, "\r\n")); string answer = Prompt("Process each? [y N]", ConsoleColor.Yellow); if (!answer.ToLowerInvariant().Equals("y")) { Exit(1); } } else { Message.PrintLine("Processing each: {0}", ConsoleColor.Yellow, dbjs.ToDelimited<FileInfo>(f => f.FullName, "\r\n\t")); } } foreach (FileInfo file in dbjs) { try { Message.PrintLine("Processing {0}...", ConsoleColor.Yellow, file.FullName); CuidSchemaManager manager = new CuidSchemaManager(); DirectoryInfo fileParent = file.Directory; DirectoryInfo genToDir = GetTargetDirectory(file); bool keep = Arguments.Contains("keep"); DirectoryInfo partialsDir = GetPartialsDir(genToDir); SchemaManagerResult managerResult = null; if (!Arguments.Contains("dll")) { bool compile = !keep; managerResult = manager.GenerateDaoAssembly(file, compile, keep, genToDir.FullName, partialsDir.FullName); } else { managerResult = manager.GenerateDaoAssembly(file, new DirectoryInfo(Arguments["dll"]), keep, genToDir.FullName, partialsDir.FullName); } if (!managerResult.Success) { throw new Exception(managerResult.Message); } if (Arguments.Contains("sql")) { WriteSqlFile(managerResult); } Message.PrintLine(managerResult.Message, ConsoleColor.Green); if (managerResult.DaoAssembly != null) { Message.PrintLine("Compiled to: {0}", managerResult.DaoAssembly.FullName, ConsoleColor.Yellow); } } catch (Exception ex) { Message.PrintLine("{0}\r\n\r\n***\r\n{1}", ConsoleColor.Red, ex.Message, ex.StackTrace ?? ""); Pause("Press enter to exit\r\n"); Exit(1); } } Pause("Press enter to exit...\r\n"); } else { Message.PrintLine("No *.db.js files were found", ConsoleColor.Yellow); } } else { if (string.IsNullOrEmpty(Arguments["conn"])) { Message.PrintLine("Please specify a connection name from the config or a directory to search", ConsoleColor.Yellow); Exit(1); } else { Extract(); } } }