Esempio n. 1
0
        public static void SyncTable(ServiceImpl service)
        {
            if (service.DatabaseTables == null || service.DatabaseTables.Count <= 0)
            {
                return;
            }

            foreach (var tableName in service.DatabaseTables.Keys)
            {
                var tableColumns = service.DatabaseTables[tableName];
                if (tableColumns == null || tableColumns.Count == 0)
                {
                    continue;
                }

                if (!DatoryUtils.IsTableExists(WebConfigUtils.DatabaseType, WebConfigUtils.ConnectionString, tableName))
                {
                    DatoryUtils.CreateTable(WebConfigUtils.DatabaseType, WebConfigUtils.ConnectionString, tableName, tableColumns);
                }
                else
                {
                    DatoryUtils.AlterTable(WebConfigUtils.DatabaseType, WebConfigUtils.ConnectionString, tableName, tableColumns, null);
                }
            }
        }
Esempio n. 2
0
        public static Compiler GetCompiler(DatabaseType databaseType, string connectionString)
        {
            Compiler compiler = null;

            if (databaseType == DatabaseType.MySql)
            {
                compiler = new MySqlCompiler();
            }
            else if (databaseType == DatabaseType.SqlServer)
            {
                compiler = new SqlServerCompiler
                {
                    UseLegacyPagination = DatoryUtils.IsUseLegacyPagination(databaseType, connectionString)
                };
            }
            else if (databaseType == DatabaseType.PostgreSql)
            {
                compiler = new PostgresCompiler();
            }
            else if (databaseType == DatabaseType.Oracle)
            {
                compiler = new OracleCompiler
                {
                    UseLegacyPagination = DatoryUtils.IsUseLegacyPagination(databaseType, connectionString)
                };
            }

            return(compiler);
        }
Esempio n. 3
0
        public void Start()
        {
            Skip.IfNot(EnvUtils.IntegrationTestMachine);

            var tableName    = _repository.TableName;
            var tableColumns = _repository.TableColumns;

            Assert.Equal("TestTable", tableName);
            Assert.NotNull(tableColumns);
            Assert.Equal(11, tableColumns.Count);

            var varChar100Column = tableColumns.FirstOrDefault(x => x.AttributeName == nameof(TestTableInfo.TypeVarChar100));

            Assert.NotNull(varChar100Column);
            Assert.Equal(DataType.VarChar, varChar100Column.DataType);
            Assert.Equal(100, varChar100Column.DataLength);

            var varCharDefaultColumn = tableColumns.FirstOrDefault(x => x.AttributeName == nameof(TestTableInfo.TypeVarCharDefault));

            Assert.NotNull(varCharDefaultColumn);
            Assert.Equal(DataType.VarChar, varCharDefaultColumn.DataType);
            Assert.Equal(DatoryUtils.VarCharDefaultLength, varCharDefaultColumn.DataLength);

            var boolColumn = tableColumns.FirstOrDefault(x => x.AttributeName == nameof(TestTableInfo.TypeBool));

            Assert.NotNull(boolColumn);
            Assert.Equal(DataType.Boolean, boolColumn.DataType);

            var contentColumn = tableColumns.FirstOrDefault(x => x.AttributeName == nameof(TestTableInfo.Content));

            Assert.NotNull(contentColumn);
            Assert.Equal(DataType.Text, contentColumn.DataType);

            var isLockedOutColumn = tableColumns.FirstOrDefault(x => x.AttributeName == "IsLockedOut");

            Assert.NotNull(isLockedOutColumn);

            var lockedColumn = tableColumns.FirstOrDefault(x => x.AttributeName == nameof(TestTableInfo.Locked));

            Assert.Null(lockedColumn);

            var isExists = DatoryUtils.IsTableExists(EnvUtils.DatabaseType, EnvUtils.ConnectionString, tableName);

            if (isExists)
            {
                DatoryUtils.DropTable(EnvUtils.DatabaseType, EnvUtils.ConnectionString, tableName);
            }

            DatoryUtils.CreateTable(EnvUtils.DatabaseType, EnvUtils.ConnectionString, tableName, tableColumns);
        }
Esempio n. 4
0
        public void End()
        {
            Skip.IfNot(EnvUtils.IntegrationTestMachine);

            DatoryUtils.DropTable(EnvUtils.DatabaseType, EnvUtils.ConnectionString, _repository.TableName);
        }
Esempio n. 5
0
 public static List <TableColumn> GetTableColumnInfoList(string tableName)
 {
     return(DatoryUtils.GetTableColumns(Context.Environment.DatabaseType, Context.Environment.ConnectionString, tableName));
 }
Esempio n. 6
0
 public static List <string> GetTableNameList()
 {
     return(DatoryUtils.GetTableNames(Context.Environment.DatabaseType, Context.Environment.ConnectionString));
 }