diff --git a/Oqtane.Database.MySQL/MySQLDatabase.cs b/Oqtane.Database.MySQL/MySQLDatabase.cs index 2f50c1d4..5e8cf38a 100644 --- a/Oqtane.Database.MySQL/MySQLDatabase.cs +++ b/Oqtane.Database.MySQL/MySQLDatabase.cs @@ -80,6 +80,15 @@ namespace Oqtane.Database.MySQL return $"`{name}`"; } + public override string RewriteValue(object value) + { + if (value.GetType().Name == "Boolean") + { + return (bool)value ? "1" : "0"; // MySQL uses 1/0 for boolean values + } + return value.ToString(); + } + public override DbContextOptionsBuilder UseDatabase(DbContextOptionsBuilder optionsBuilder, string connectionString) { return optionsBuilder.UseMySql(connectionString, ServerVersion.AutoDetect(connectionString)); diff --git a/Oqtane.Database.PostgreSQL/PostgreSQLDatabase.cs b/Oqtane.Database.PostgreSQL/PostgreSQLDatabase.cs index 7e20a86d..33c24cde 100644 --- a/Oqtane.Database.PostgreSQL/PostgreSQLDatabase.cs +++ b/Oqtane.Database.PostgreSQL/PostgreSQLDatabase.cs @@ -92,13 +92,13 @@ namespace Oqtane.Database.PostgreSQL return $"\"{name}\""; } - public override string RewriteValue(string value, string type) + public override string RewriteValue(object value) { - if (type == "bool") + if (value.GetType().Name == "Boolean") { - value = (value == "1") ? "true" : "false"; + return (bool)value ? "true" : "false"; // PostgreSQL uses true/false for boolean values } - return value; + return value.ToString(); } public override void UpdateIdentityStoreTableNames(ModelBuilder builder) diff --git a/Oqtane.Database.SqlServer/SqlServerDatabase.cs b/Oqtane.Database.SqlServer/SqlServerDatabase.cs index 7f52b8be..3228c550 100644 --- a/Oqtane.Database.SqlServer/SqlServerDatabase.cs +++ b/Oqtane.Database.SqlServer/SqlServerDatabase.cs @@ -51,6 +51,15 @@ namespace Oqtane.Database.SqlServer return $"[{name}]"; } + public override string RewriteValue(object value) + { + if (value.GetType().Name == "Boolean") + { + return (bool)value ? "1" : "0"; // SQL Server uses 1/0 for boolean values + } + return value.ToString(); + } + public override int ExecuteNonQuery(string connectionString, string query) { var conn = new SqlConnection(FormatConnectionString(connectionString)); diff --git a/Oqtane.Database.Sqlite/SqliteDatabase.cs b/Oqtane.Database.Sqlite/SqliteDatabase.cs index df132079..048a4aef 100644 --- a/Oqtane.Database.Sqlite/SqliteDatabase.cs +++ b/Oqtane.Database.Sqlite/SqliteDatabase.cs @@ -89,6 +89,15 @@ namespace Oqtane.Database.Sqlite return $"\"{name}\""; } + public override string RewriteValue(object value) + { + if (value.GetType().Name == "Boolean") + { + return (bool)value ? "1" : "0"; // SQLite uses 1/0 for boolean values + } + return value.ToString(); + } + public override DbContextOptionsBuilder UseDatabase(DbContextOptionsBuilder optionsBuilder, string connectionString) { return optionsBuilder.UseSqlite(connectionString) diff --git a/Oqtane.Server/Databases/DatabaseBase.cs b/Oqtane.Server/Databases/DatabaseBase.cs index 668fdd38..7f8c52db 100644 --- a/Oqtane.Server/Databases/DatabaseBase.cs +++ b/Oqtane.Server/Databases/DatabaseBase.cs @@ -71,9 +71,9 @@ namespace Oqtane.Databases return name; } - public virtual string RewriteValue(string value, string type) + public virtual string RewriteValue(object value) { - return value; + return value.ToString(); } public virtual void UpdateIdentityStoreTableNames(ModelBuilder builder) diff --git a/Oqtane.Server/Databases/Interfaces/IDatabase.cs b/Oqtane.Server/Databases/Interfaces/IDatabase.cs index 8b9e7586..8a02f4ea 100644 --- a/Oqtane.Server/Databases/Interfaces/IDatabase.cs +++ b/Oqtane.Server/Databases/Interfaces/IDatabase.cs @@ -30,7 +30,7 @@ namespace Oqtane.Databases.Interfaces public string RewriteName(string name); - public string RewriteValue(string value, string type); + public string RewriteValue(object value); public void UpdateIdentityStoreTableNames(ModelBuilder builder); diff --git a/Oqtane.Server/Migrations/EntityBuilders/BaseEntityBuilder.cs b/Oqtane.Server/Migrations/EntityBuilders/BaseEntityBuilder.cs index 430a72c6..c75558b7 100644 --- a/Oqtane.Server/Migrations/EntityBuilders/BaseEntityBuilder.cs +++ b/Oqtane.Server/Migrations/EntityBuilders/BaseEntityBuilder.cs @@ -55,9 +55,9 @@ namespace Oqtane.Migrations.EntityBuilders return ActiveDatabase.RewriteName(name); } - private string RewriteValue(string value, string type) + private string RewriteValue(object value) { - return ActiveDatabase.RewriteValue(value, type); + return ActiveDatabase.RewriteValue(value); } // Column Operations @@ -466,36 +466,100 @@ namespace Oqtane.Migrations.EntityBuilders //Sql Operations - public void DeleteFromTable(string condition = "") + public void InsertData(string[] columns, object[] values, string condition) { - var deleteSql = $"DELETE FROM {AddSchema(DelimitName(RewriteName(EntityTableName)))} "; - if(!string.IsNullOrEmpty(condition)) + var sql = $"INSERT INTO {AddSchema(DelimitName(RewriteName(EntityTableName)))} "; + if (columns != null && columns.Length > 0) + { + sql += "("; + for (var i = 0; i < columns.Length; i++) + { + sql += ((i == 0) ? "" : ", ") + $"{DelimitName(RewriteName(columns[i]))}"; + } + sql += ") "; + } + if (values != null && values.Length > 0) + { + sql += "VALUES ("; + for (var i = 0; i < values.Length; i++) + { + sql += ((i == 0) ? "" : ", ") + $"{RewriteValue(values[i])}"; + } + sql += ") "; + } + if (!string.IsNullOrEmpty(condition)) { // note that condition values must be created using RewriteName(), DelimitName(), RewriteValue() if targeting multiple database platforms - deleteSql += $"WHERE {condition}"; + sql += $"{condition}"; } - _migrationBuilder.Sql(deleteSql); + _migrationBuilder.Sql(sql); } + public void UpdateData(string column, object value) + { + UpdateData([column], [value], ""); + } + + public void UpdateData(string column, object value, string condition) + { + UpdateData([column], [value], condition); + } + + public void UpdateData(string[] columns, object[] values, string condition) + { + var sql = $"UPDATE {AddSchema(DelimitName(RewriteName(EntityTableName)))} "; + if (columns != null && values != null && columns.Length > 0 && values.Length > 0 && columns.Length == values.Length) + { + sql += "SET "; + for (var i = 0; i < columns.Length; i++) + { + sql += ((i == 0) ? "" : ", ") + $"{DelimitName(RewriteName(columns[i]))} = {RewriteValue(values[i])}"; + } + sql += " "; + } + if (!string.IsNullOrEmpty(condition)) + { + // note that condition values must be created using RewriteName(), DelimitName(), RewriteValue() if targeting multiple database platforms + sql += $"WHERE {condition}"; + } + _migrationBuilder.Sql(sql); + } + + public void DeleteData(string condition) + { + var sql = $"DELETE FROM {AddSchema(DelimitName(RewriteName(EntityTableName)))} "; + if (!string.IsNullOrEmpty(condition)) + { + // note that condition values must be created using RewriteName(), DelimitName(), RewriteValue() if targeting multiple database platforms + sql += $"WHERE {condition}"; + } + _migrationBuilder.Sql(sql); + } + + + [Obsolete("DeleteFromTable(condition) is deprecated. Use DeleteData(condition) instead", false)] + public void DeleteFromTable(string condition = "") + { + DeleteData(condition); + } + + [Obsolete("UpdateColumn(columnName, value) is deprecated. Use UpdateData(column, value) instead", false)] public void UpdateColumn(string columnName, string value) { UpdateColumn(columnName, value, "", ""); } + [Obsolete("UpdateColumn(columnName, value, condition) is deprecated. Use UpdateData(column, value, condition) instead", false)] public void UpdateColumn(string columnName, string value, string condition) { UpdateColumn(columnName, value, "", condition); } + [Obsolete("UpdateColumn(columnName, value, type, condition) is deprecated. Use UpdateData(column, value, condition) instead", false)] public void UpdateColumn(string columnName, string value, string type, string condition) { - var updateSql = $"UPDATE {AddSchema(DelimitName(RewriteName(EntityTableName)))} SET {DelimitName(RewriteName(columnName))} = {RewriteValue(value, type)} "; - if (!string.IsNullOrEmpty(condition)) - { - // note that condition values must be created using RewriteName(), DelimitName(), RewriteValue() if targeting multiple database platforms - updateSql += $"WHERE {condition}"; - } - _migrationBuilder.Sql(updateSql); + object obj = (type == "bool" && value == "1") ? true : false; // boolean values had custom logic for PostgreSQL + UpdateData([columnName], [obj], condition); } } } diff --git a/Oqtane.Server/Migrations/Framework/MultiDatabaseMigration.cs b/Oqtane.Server/Migrations/Framework/MultiDatabaseMigration.cs index 07f8043b..43a803a4 100644 --- a/Oqtane.Server/Migrations/Framework/MultiDatabaseMigration.cs +++ b/Oqtane.Server/Migrations/Framework/MultiDatabaseMigration.cs @@ -22,9 +22,9 @@ namespace Oqtane.Migrations return ActiveDatabase.RewriteName(name); } - protected string RewriteValue(string value, string type) + protected string RewriteValue(object value) { - return ActiveDatabase.RewriteValue(value, type); + return ActiveDatabase.RewriteValue(value); } } } diff --git a/Oqtane.Server/Migrations/Master/02010001_AddDatabaseTypeColumnToTenant.cs b/Oqtane.Server/Migrations/Master/02010001_AddDatabaseTypeColumnToTenant.cs index c5a54e5f..3573e7a7 100644 --- a/Oqtane.Server/Migrations/Master/02010001_AddDatabaseTypeColumnToTenant.cs +++ b/Oqtane.Server/Migrations/Master/02010001_AddDatabaseTypeColumnToTenant.cs @@ -23,7 +23,7 @@ namespace Oqtane.Migrations.Master //Update new column if SqlServer (Other Databases will not have any records yet) if (ActiveDatabase.Name == "SqlServer") { - tenantEntityBuilder.UpdateColumn("DBType", $"'{ActiveDatabase.TypeName}'"); + tenantEntityBuilder.UpdateData("DBType", $"'{ActiveDatabase.TypeName}'"); } } } diff --git a/Oqtane.Server/Migrations/Master/03000201_AddAliasIsDefault.cs b/Oqtane.Server/Migrations/Master/03000201_AddAliasIsDefault.cs index e862878f..a64705e8 100644 --- a/Oqtane.Server/Migrations/Master/03000201_AddAliasIsDefault.cs +++ b/Oqtane.Server/Migrations/Master/03000201_AddAliasIsDefault.cs @@ -19,7 +19,7 @@ namespace Oqtane.Migrations.Master //Add Column to Alias table var aliasEntityBuilder = new AliasEntityBuilder(migrationBuilder, ActiveDatabase); aliasEntityBuilder.AddBooleanColumn("IsDefault", true); - aliasEntityBuilder.UpdateColumn("IsDefault", "1", "bool", ""); + aliasEntityBuilder.UpdateData("IsDefault", true); } protected override void Down(MigrationBuilder migrationBuilder) diff --git a/Oqtane.Server/Migrations/Tenant/01000101_AddAdditionColumnToNotifications.cs b/Oqtane.Server/Migrations/Tenant/01000101_AddAdditionColumnToNotifications.cs index 3dc8e016..084e8ebe 100644 --- a/Oqtane.Server/Migrations/Tenant/01000101_AddAdditionColumnToNotifications.cs +++ b/Oqtane.Server/Migrations/Tenant/01000101_AddAdditionColumnToNotifications.cs @@ -21,7 +21,7 @@ namespace Oqtane.Migrations.Tenant notificationEntityBuilder.AddDateTimeColumn("SendOn", true); //Update new Column - notificationEntityBuilder.UpdateColumn("SendOn", $"{RewriteName("CreatedOn")}", $"{DelimitName(RewriteName("SendOn"))} IS NULL"); + notificationEntityBuilder.UpdateData("SendOn", $"{DelimitName(RewriteName("CreatedOn"))}", $"{DelimitName(RewriteName("SendOn"))} IS NULL"); } protected override void Down(MigrationBuilder migrationBuilder) diff --git a/Oqtane.Server/Migrations/Tenant/02000001_AddColumnToProfileAndUpdatePage.cs b/Oqtane.Server/Migrations/Tenant/02000001_AddColumnToProfileAndUpdatePage.cs index af2c0166..dda1a3d5 100644 --- a/Oqtane.Server/Migrations/Tenant/02000001_AddColumnToProfileAndUpdatePage.cs +++ b/Oqtane.Server/Migrations/Tenant/02000001_AddColumnToProfileAndUpdatePage.cs @@ -21,7 +21,7 @@ namespace Oqtane.Migrations.Tenant profileEntityBuilder.AddStringColumn("Options", 2000, true); //Update new column - profileEntityBuilder.UpdateColumn("Options", "''"); + profileEntityBuilder.UpdateData("Options", "''"); //Alter Column in Page table for Sql Server if (ActiveDatabase.Name == "SqlServer") diff --git a/Oqtane.Server/Migrations/Tenant/02000101_UpdateIconColumnInPage.cs b/Oqtane.Server/Migrations/Tenant/02000101_UpdateIconColumnInPage.cs index d9dcf06f..1c04c3d6 100644 --- a/Oqtane.Server/Migrations/Tenant/02000101_UpdateIconColumnInPage.cs +++ b/Oqtane.Server/Migrations/Tenant/02000101_UpdateIconColumnInPage.cs @@ -19,7 +19,7 @@ namespace Oqtane.Migrations.Tenant ///Update Icon Field in Page var pageEntityBuilder = new PageEntityBuilder(migrationBuilder, ActiveDatabase); var updateSql = ActiveDatabase.ConcatenateSql("'oi oi-'", $"{DelimitName(RewriteName("Icon"))}"); - pageEntityBuilder.UpdateColumn("Icon", updateSql, $"{DelimitName(RewriteName("Icon"))} <> ''" ); + pageEntityBuilder.UpdateData("Icon", updateSql, $"{DelimitName(RewriteName("Icon"))} <> ''" ); } } } diff --git a/Oqtane.Server/Migrations/Tenant/02000103_UpdatePageAndAddColumnToSite.cs b/Oqtane.Server/Migrations/Tenant/02000103_UpdatePageAndAddColumnToSite.cs index 753a747e..35a0063d 100644 --- a/Oqtane.Server/Migrations/Tenant/02000103_UpdatePageAndAddColumnToSite.cs +++ b/Oqtane.Server/Migrations/Tenant/02000103_UpdatePageAndAddColumnToSite.cs @@ -21,12 +21,12 @@ namespace Oqtane.Migrations.Tenant siteEntityBuilder.AddStringColumn("AdminContainerType", 200, true); //Update new column - siteEntityBuilder.UpdateColumn("AdminContainerType", "''"); + siteEntityBuilder.UpdateData("AdminContainerType", "''"); //Delete records from Page var pageEntityBuilder = new PageEntityBuilder(migrationBuilder, ActiveDatabase); - pageEntityBuilder.DeleteFromTable($"{ActiveDatabase.RewriteName("Path")} = 'admin/tenants'"); + pageEntityBuilder.DeleteData($"{ActiveDatabase.RewriteName("Path")} = 'admin/tenants'"); } protected override void Down(MigrationBuilder migrationBuilder) diff --git a/Oqtane.Server/Migrations/Tenant/02000202_UpdateDefaultContainerTypeInSitePage.cs b/Oqtane.Server/Migrations/Tenant/02000202_UpdateDefaultContainerTypeInSitePage.cs index 1c0cb5b1..bf712782 100644 --- a/Oqtane.Server/Migrations/Tenant/02000202_UpdateDefaultContainerTypeInSitePage.cs +++ b/Oqtane.Server/Migrations/Tenant/02000202_UpdateDefaultContainerTypeInSitePage.cs @@ -20,18 +20,18 @@ namespace Oqtane.Migrations.Tenant { //Update DefaultContainerType In Site var siteEntityBuilder = new SiteEntityBuilder(migrationBuilder, ActiveDatabase); - siteEntityBuilder.UpdateColumn("DefaultContainerType", "'Oqtane.Themes.OqtaneTheme.DefaultTitle, Oqtane.Client'", $"{DelimitName(RewriteName("DefaultContainerType"))} = 'Oqtane.Themes.OqtaneTheme.Container, Oqtane.Client'"); - siteEntityBuilder.UpdateColumn("DefaultContainerType", "'Oqtane.Themes.OqtaneTheme.DefaultNoTitle, Oqtane.Client'", $"{DelimitName(RewriteName("DefaultContainerType"))} = 'Oqtane.Themes.OqtaneTheme.NoTitle, Oqtane.Client'"); + siteEntityBuilder.UpdateData("DefaultContainerType", "'Oqtane.Themes.OqtaneTheme.DefaultTitle, Oqtane.Client'", $"{DelimitName(RewriteName("DefaultContainerType"))} = 'Oqtane.Themes.OqtaneTheme.Container, Oqtane.Client'"); + siteEntityBuilder.UpdateData("DefaultContainerType", "'Oqtane.Themes.OqtaneTheme.DefaultNoTitle, Oqtane.Client'", $"{DelimitName(RewriteName("DefaultContainerType"))} = 'Oqtane.Themes.OqtaneTheme.NoTitle, Oqtane.Client'"); //Update DefaultContainerType in Page var pageEntityBuilder = new PageEntityBuilder(migrationBuilder, ActiveDatabase); - pageEntityBuilder.UpdateColumn("DefaultContainerType", "'Oqtane.Themes.OqtaneTheme.DefaultTitle, Oqtane.Client'", $"{DelimitName(RewriteName("DefaultContainerType"))} = 'Oqtane.Themes.OqtaneTheme.Container, Oqtane.Client'"); - pageEntityBuilder.UpdateColumn("DefaultContainerType", "'Oqtane.Themes.OqtaneTheme.DefaultNoTitle, Oqtane.Client'", $"{DelimitName(RewriteName("DefaultContainerType"))} = 'Oqtane.Themes.OqtaneTheme.NoTitle, Oqtane.Client'"); + pageEntityBuilder.UpdateData("DefaultContainerType", "'Oqtane.Themes.OqtaneTheme.DefaultTitle, Oqtane.Client'", $"{DelimitName(RewriteName("DefaultContainerType"))} = 'Oqtane.Themes.OqtaneTheme.Container, Oqtane.Client'"); + pageEntityBuilder.UpdateData("DefaultContainerType", "'Oqtane.Themes.OqtaneTheme.DefaultNoTitle, Oqtane.Client'", $"{DelimitName(RewriteName("DefaultContainerType"))} = 'Oqtane.Themes.OqtaneTheme.NoTitle, Oqtane.Client'"); //Update ContainerType in PageModule var pageModuleEntityBuilder = new PageModuleEntityBuilder(migrationBuilder, ActiveDatabase); - pageModuleEntityBuilder.UpdateColumn("ContainerType", "'Oqtane.Themes.OqtaneTheme.DefaultTitle, Oqtane.Client'", $"{DelimitName(RewriteName("ContainerType"))} = 'Oqtane.Themes.OqtaneTheme.Container, Oqtane.Client'"); - pageModuleEntityBuilder.UpdateColumn("ContainerType", "'Oqtane.Themes.OqtaneTheme.DefaultNoTitle, Oqtane.Client'", $"{DelimitName(RewriteName("ContainerType"))} = 'Oqtane.Themes.OqtaneTheme.NoTitle, Oqtane.Client'"); + pageModuleEntityBuilder.UpdateData("ContainerType", "'Oqtane.Themes.OqtaneTheme.DefaultTitle, Oqtane.Client'", $"{DelimitName(RewriteName("ContainerType"))} = 'Oqtane.Themes.OqtaneTheme.Container, Oqtane.Client'"); + pageModuleEntityBuilder.UpdateData("ContainerType", "'Oqtane.Themes.OqtaneTheme.DefaultNoTitle, Oqtane.Client'", $"{DelimitName(RewriteName("ContainerType"))} = 'Oqtane.Themes.OqtaneTheme.NoTitle, Oqtane.Client'"); } } diff --git a/Oqtane.Server/Migrations/Tenant/02000203_DropDefaultLayoutInSite.cs b/Oqtane.Server/Migrations/Tenant/02000203_DropDefaultLayoutInSite.cs index 4e174feb..3f0c9757 100644 --- a/Oqtane.Server/Migrations/Tenant/02000203_DropDefaultLayoutInSite.cs +++ b/Oqtane.Server/Migrations/Tenant/02000203_DropDefaultLayoutInSite.cs @@ -29,22 +29,22 @@ namespace Oqtane.Migrations.Tenant siteEntityBuilder.DropColumn("DefaultLayoutType"); //Update DefaultContainerType In Site - siteEntityBuilder.UpdateColumn("DefaultContainerType", "'Oqtane.Themes.OqtaneTheme.Container, Oqtane.Client'", $"{DelimitName(RewriteName("DefaultContainerType"))} = 'Oqtane.Themes.OqtaneTheme.DefaultTitle, Oqtane.Client'"); - siteEntityBuilder.UpdateColumn("DefaultContainerType", "'Oqtane.Themes.OqtaneTheme.Container, Oqtane.Client'", $"{DelimitName(RewriteName("DefaultContainerType"))} = 'Oqtane.Themes.OqtaneTheme.DefaultNoTitle, Oqtane.Client'"); + siteEntityBuilder.UpdateData("DefaultContainerType", "'Oqtane.Themes.OqtaneTheme.Container, Oqtane.Client'", $"{DelimitName(RewriteName("DefaultContainerType"))} = 'Oqtane.Themes.OqtaneTheme.DefaultTitle, Oqtane.Client'"); + siteEntityBuilder.UpdateData("DefaultContainerType", "'Oqtane.Themes.OqtaneTheme.Container, Oqtane.Client'", $"{DelimitName(RewriteName("DefaultContainerType"))} = 'Oqtane.Themes.OqtaneTheme.DefaultNoTitle, Oqtane.Client'"); //Drop Column from Page Table var pageEntityBuilder = new PageEntityBuilder(migrationBuilder, ActiveDatabase); pageEntityBuilder.DropColumn("LayoutType"); //Update DefaultContainerType in Page - pageEntityBuilder.UpdateColumn("DefaultContainerType", "'Oqtane.Themes.OqtaneTheme.Container, Oqtane.Client'", $"{DelimitName(RewriteName("DefaultContainerType"))} = 'Oqtane.Themes.OqtaneTheme.DefaultTitle, Oqtane.Client'"); - pageEntityBuilder.UpdateColumn("DefaultContainerType", "'Oqtane.Themes.OqtaneTheme.Container, Oqtane.Client'", $"{DelimitName(RewriteName("DefaultContainerType"))} = 'Oqtane.Themes.OqtaneTheme.DefaultNoTitle, Oqtane.Client'"); + pageEntityBuilder.UpdateData("DefaultContainerType", "'Oqtane.Themes.OqtaneTheme.Container, Oqtane.Client'", $"{DelimitName(RewriteName("DefaultContainerType"))} = 'Oqtane.Themes.OqtaneTheme.DefaultTitle, Oqtane.Client'"); + pageEntityBuilder.UpdateData("DefaultContainerType", "'Oqtane.Themes.OqtaneTheme.Container, Oqtane.Client'", $"{DelimitName(RewriteName("DefaultContainerType"))} = 'Oqtane.Themes.OqtaneTheme.DefaultNoTitle, Oqtane.Client'"); //Update ContainerType in PageModule var pageModuleEntityBuilder = new PageModuleEntityBuilder(migrationBuilder, ActiveDatabase); - pageModuleEntityBuilder.UpdateColumn("ContainerType", "'Oqtane.Themes.OqtaneTheme.Container, Oqtane.Client'", $"{DelimitName(RewriteName("ContainerType"))} = 'Oqtane.Themes.OqtaneTheme.DefaultTitle, Oqtane.Client'"); - pageModuleEntityBuilder.UpdateColumn("ContainerType", "'Oqtane.Themes.OqtaneTheme.Container, Oqtane.Client'", $"{DelimitName(RewriteName("ContainerType"))} = 'Oqtane.Themes.OqtaneTheme.DefaultNoTitle, Oqtane.Client'"); + pageModuleEntityBuilder.UpdateData("ContainerType", "'Oqtane.Themes.OqtaneTheme.Container, Oqtane.Client'", $"{DelimitName(RewriteName("ContainerType"))} = 'Oqtane.Themes.OqtaneTheme.DefaultTitle, Oqtane.Client'"); + pageModuleEntityBuilder.UpdateData("ContainerType", "'Oqtane.Themes.OqtaneTheme.Container, Oqtane.Client'", $"{DelimitName(RewriteName("ContainerType"))} = 'Oqtane.Themes.OqtaneTheme.DefaultNoTitle, Oqtane.Client'"); } } diff --git a/Oqtane.Server/Migrations/Tenant/02010003_AddFolderType.cs b/Oqtane.Server/Migrations/Tenant/02010003_AddFolderType.cs index f6d3905b..0886cb24 100644 --- a/Oqtane.Server/Migrations/Tenant/02010003_AddFolderType.cs +++ b/Oqtane.Server/Migrations/Tenant/02010003_AddFolderType.cs @@ -21,7 +21,7 @@ namespace Oqtane.Migrations.Tenant //Add Type column and initialize folderEntityBuilder.AddStringColumn("Type", 50, true, true); - folderEntityBuilder.UpdateColumn("Type", "'" + FolderTypes.Private + "'"); + folderEntityBuilder.UpdateData("Type", "'" + FolderTypes.Private + "'"); } protected override void Down(MigrationBuilder migrationBuilder) diff --git a/Oqtane.Server/Migrations/Tenant/02020001_AddPageIsClickable.cs b/Oqtane.Server/Migrations/Tenant/02020001_AddPageIsClickable.cs index 54b86aaf..a06e90ea 100644 --- a/Oqtane.Server/Migrations/Tenant/02020001_AddPageIsClickable.cs +++ b/Oqtane.Server/Migrations/Tenant/02020001_AddPageIsClickable.cs @@ -19,7 +19,7 @@ namespace Oqtane.Migrations.Tenant var pageEntityBuilder = new PageEntityBuilder(migrationBuilder, ActiveDatabase); pageEntityBuilder.AddBooleanColumn("IsClickable", true); - pageEntityBuilder.UpdateColumn("IsClickable", "1", "bool", ""); + pageEntityBuilder.UpdateData("IsClickable", true); } protected override void Down(MigrationBuilder migrationBuilder) diff --git a/Oqtane.Server/Migrations/Tenant/02030001_AddFolderCapacity.cs b/Oqtane.Server/Migrations/Tenant/02030001_AddFolderCapacity.cs index a5ed9237..d6b2f315 100644 --- a/Oqtane.Server/Migrations/Tenant/02030001_AddFolderCapacity.cs +++ b/Oqtane.Server/Migrations/Tenant/02030001_AddFolderCapacity.cs @@ -19,8 +19,8 @@ namespace Oqtane.Migrations.Tenant { var folderEntityBuilder = new FolderEntityBuilder(migrationBuilder, ActiveDatabase); folderEntityBuilder.AddIntegerColumn("Capacity", true); - folderEntityBuilder.UpdateColumn("Capacity", "0"); - folderEntityBuilder.UpdateColumn("Capacity", Constants.UserFolderCapacity.ToString(), $"{DelimitName(RewriteName("Name"))} = 'My Folder'"); + folderEntityBuilder.UpdateData("Capacity", 0); + folderEntityBuilder.UpdateData("Capacity", Constants.UserFolderCapacity, $"{DelimitName(RewriteName("Name"))} = 'My Folder'"); folderEntityBuilder.AddStringColumn("ImageSizes", 512, true, true); var fileEntityBuilder = new FileEntityBuilder(migrationBuilder, ActiveDatabase); diff --git a/Oqtane.Server/Migrations/Tenant/02030002_AddSettingIsPublic.cs b/Oqtane.Server/Migrations/Tenant/02030002_AddSettingIsPublic.cs index 07c303db..00c92854 100644 --- a/Oqtane.Server/Migrations/Tenant/02030002_AddSettingIsPublic.cs +++ b/Oqtane.Server/Migrations/Tenant/02030002_AddSettingIsPublic.cs @@ -19,7 +19,7 @@ namespace Oqtane.Migrations.Tenant { var settingEntityBuilder = new SettingEntityBuilder(migrationBuilder, ActiveDatabase); settingEntityBuilder.AddBooleanColumn("IsPublic", true); - settingEntityBuilder.UpdateColumn("IsPublic", "0", "bool", ""); + settingEntityBuilder.UpdateData("IsPublic", false); } protected override void Down(MigrationBuilder migrationBuilder) diff --git a/Oqtane.Server/Migrations/Tenant/03000001_AddSiteRuntime.cs b/Oqtane.Server/Migrations/Tenant/03000001_AddSiteRuntime.cs index 90a7237a..8698e806 100644 --- a/Oqtane.Server/Migrations/Tenant/03000001_AddSiteRuntime.cs +++ b/Oqtane.Server/Migrations/Tenant/03000001_AddSiteRuntime.cs @@ -18,9 +18,9 @@ namespace Oqtane.Migrations.Tenant { var siteEntityBuilder = new SiteEntityBuilder(migrationBuilder, ActiveDatabase); siteEntityBuilder.AddStringColumn("Runtime", 50, true, true); - siteEntityBuilder.UpdateColumn("Runtime", "'Server'"); + siteEntityBuilder.UpdateData("Runtime", "'Server'"); siteEntityBuilder.AddStringColumn("RenderMode", 50, true, true); - siteEntityBuilder.UpdateColumn("RenderMode", "'ServerPrerendered'"); + siteEntityBuilder.UpdateData("RenderMode", "'ServerPrerendered'"); } protected override void Down(MigrationBuilder migrationBuilder) diff --git a/Oqtane.Server/Migrations/Tenant/03000104_AddSiteVisitorTracking.cs b/Oqtane.Server/Migrations/Tenant/03000104_AddSiteVisitorTracking.cs index 9c5c8e5d..e3d2f3af 100644 --- a/Oqtane.Server/Migrations/Tenant/03000104_AddSiteVisitorTracking.cs +++ b/Oqtane.Server/Migrations/Tenant/03000104_AddSiteVisitorTracking.cs @@ -19,9 +19,9 @@ namespace Oqtane.Migrations.Tenant var siteEntityBuilder = new SiteEntityBuilder(migrationBuilder, ActiveDatabase); siteEntityBuilder.AddBooleanColumn("VisitorTracking", true); - siteEntityBuilder.UpdateColumn("VisitorTracking", "1", "bool", ""); + siteEntityBuilder.UpdateData("VisitorTracking", true); siteEntityBuilder.AddBooleanColumn("CaptureBrokenUrls", true); - siteEntityBuilder.UpdateColumn("CaptureBrokenUrls", "1", "bool", ""); + siteEntityBuilder.UpdateData("CaptureBrokenUrls", true); } protected override void Down(MigrationBuilder migrationBuilder) diff --git a/Oqtane.Server/Migrations/Tenant/03000201_UpdateSettingIsPublic.cs b/Oqtane.Server/Migrations/Tenant/03000201_UpdateSettingIsPublic.cs index 46b52150..6720a983 100644 --- a/Oqtane.Server/Migrations/Tenant/03000201_UpdateSettingIsPublic.cs +++ b/Oqtane.Server/Migrations/Tenant/03000201_UpdateSettingIsPublic.cs @@ -18,13 +18,13 @@ namespace Oqtane.Migrations.Tenant protected override void Up(MigrationBuilder migrationBuilder) { var settingEntityBuilder = new SettingEntityBuilder(migrationBuilder, ActiveDatabase); - settingEntityBuilder.UpdateColumn("IsPublic", "1", "bool", $"{DelimitName(RewriteName("SettingName"))} NOT LIKE 'SMTP%'"); + settingEntityBuilder.UpdateData("IsPublic", true, $"{DelimitName(RewriteName("SettingName"))} NOT LIKE 'SMTP%'"); } protected override void Down(MigrationBuilder migrationBuilder) { var settingEntityBuilder = new SettingEntityBuilder(migrationBuilder, ActiveDatabase); - settingEntityBuilder.UpdateColumn("IsPublic", "0", "bool", $"{DelimitName(RewriteName("SettingName"))} NOT LIKE 'SMTP%'"); + settingEntityBuilder.UpdateData("IsPublic", false, $"{DelimitName(RewriteName("SettingName"))} NOT LIKE 'SMTP%'"); } } } diff --git a/Oqtane.Server/Migrations/Tenant/03000202_UpdateSettingIsPrivate.cs b/Oqtane.Server/Migrations/Tenant/03000202_UpdateSettingIsPrivate.cs index dae85bb4..9866f1c5 100644 --- a/Oqtane.Server/Migrations/Tenant/03000202_UpdateSettingIsPrivate.cs +++ b/Oqtane.Server/Migrations/Tenant/03000202_UpdateSettingIsPrivate.cs @@ -19,8 +19,8 @@ namespace Oqtane.Migrations.Tenant { var settingEntityBuilder = new SettingEntityBuilder(migrationBuilder, ActiveDatabase); settingEntityBuilder.AddBooleanColumn("IsPrivate", true); - settingEntityBuilder.UpdateColumn("IsPrivate", "0", "bool", ""); - settingEntityBuilder.UpdateColumn("IsPrivate", "1", "bool", $"{DelimitName(RewriteName("EntityName"))} = 'Site' AND { DelimitName(RewriteName("SettingName"))} LIKE 'SMTP%'"); + settingEntityBuilder.UpdateData("IsPrivate", false); + settingEntityBuilder.UpdateData("IsPrivate", true, $"{DelimitName(RewriteName("EntityName"))} = 'Site' AND { DelimitName(RewriteName("SettingName"))} LIKE 'SMTP%'"); settingEntityBuilder.DropColumn("IsPublic"); } diff --git a/Oqtane.Server/Migrations/Tenant/04000001_AddHeadContent.cs b/Oqtane.Server/Migrations/Tenant/04000001_AddHeadContent.cs index fcb4bd1a..3a2e7ea8 100644 --- a/Oqtane.Server/Migrations/Tenant/04000001_AddHeadContent.cs +++ b/Oqtane.Server/Migrations/Tenant/04000001_AddHeadContent.cs @@ -23,7 +23,7 @@ namespace Oqtane.Migrations.Tenant var pageEntityBuilder = new PageEntityBuilder(migrationBuilder, ActiveDatabase); pageEntityBuilder.AddStringColumn("HeadContent", 4000, true); - pageEntityBuilder.UpdateColumn("HeadContent", "Meta"); + pageEntityBuilder.UpdateData("HeadContent", "Meta"); pageEntityBuilder.DropColumn("Meta"); } diff --git a/Oqtane.Server/Migrations/Tenant/04000101_AddNotificationIsRead.cs b/Oqtane.Server/Migrations/Tenant/04000101_AddNotificationIsRead.cs index c0f610a1..dadcac18 100644 --- a/Oqtane.Server/Migrations/Tenant/04000101_AddNotificationIsRead.cs +++ b/Oqtane.Server/Migrations/Tenant/04000101_AddNotificationIsRead.cs @@ -20,7 +20,7 @@ namespace Oqtane.Migrations.Tenant { var notificationEntityBuilder = new NotificationEntityBuilder(migrationBuilder, ActiveDatabase); notificationEntityBuilder.AddBooleanColumn("IsRead", true); - notificationEntityBuilder.UpdateColumn("IsRead", "1", "bool", ""); + notificationEntityBuilder.UpdateData("IsRead", true); } protected override void Down(MigrationBuilder migrationBuilder) diff --git a/Oqtane.Server/Migrations/Tenant/04000601_AddProfileRows.cs b/Oqtane.Server/Migrations/Tenant/04000601_AddProfileRows.cs index 976706ce..81d3f887 100644 --- a/Oqtane.Server/Migrations/Tenant/04000601_AddProfileRows.cs +++ b/Oqtane.Server/Migrations/Tenant/04000601_AddProfileRows.cs @@ -18,7 +18,7 @@ namespace Oqtane.Migrations.Tenant { var profileEntityBuilder = new ProfileEntityBuilder(migrationBuilder, ActiveDatabase); profileEntityBuilder.AddIntegerColumn("Rows", true); - profileEntityBuilder.UpdateColumn("Rows", "1"); + profileEntityBuilder.UpdateData("Rows", 1); } protected override void Down(MigrationBuilder migrationBuilder) diff --git a/Oqtane.Server/Migrations/Tenant/05000100_AddSiteHybridEnabled.cs b/Oqtane.Server/Migrations/Tenant/05000100_AddSiteHybridEnabled.cs index 9f39a4d7..0e65e38f 100644 --- a/Oqtane.Server/Migrations/Tenant/05000100_AddSiteHybridEnabled.cs +++ b/Oqtane.Server/Migrations/Tenant/05000100_AddSiteHybridEnabled.cs @@ -18,7 +18,7 @@ namespace Oqtane.Migrations.Tenant { var siteEntityBuilder = new SiteEntityBuilder(migrationBuilder, ActiveDatabase); siteEntityBuilder.AddBooleanColumn("HybridEnabled", true); - siteEntityBuilder.UpdateColumn("HybridEnabled", "0", "bool", ""); // default to false + siteEntityBuilder.UpdateData("HybridEnabled", false); // default to false } protected override void Down(MigrationBuilder migrationBuilder) diff --git a/Oqtane.Server/Migrations/Tenant/05010004_AddSitePrerender.cs b/Oqtane.Server/Migrations/Tenant/05010004_AddSitePrerender.cs index 997798ca..99d911bb 100644 --- a/Oqtane.Server/Migrations/Tenant/05010004_AddSitePrerender.cs +++ b/Oqtane.Server/Migrations/Tenant/05010004_AddSitePrerender.cs @@ -19,13 +19,13 @@ namespace Oqtane.Migrations.Tenant { var siteEntityBuilder = new SiteEntityBuilder(migrationBuilder, ActiveDatabase); - siteEntityBuilder.UpdateColumn("RenderMode", $"'{RenderModes.Interactive}'"); + siteEntityBuilder.UpdateData("RenderMode", $"'{RenderModes.Interactive}'"); siteEntityBuilder.AddBooleanColumn("Prerender", true); - siteEntityBuilder.UpdateColumn("Prerender", "1", "bool", ""); + siteEntityBuilder.UpdateData("Prerender", true); siteEntityBuilder.AddBooleanColumn("Hybrid", true); - siteEntityBuilder.UpdateColumn("Hybrid", "0", "bool", ""); + siteEntityBuilder.UpdateData("Hybrid", false); siteEntityBuilder.DropColumn("HybridEnabled"); } diff --git a/Oqtane.Server/Migrations/Tenant/06010402_ResetTimeZone.cs b/Oqtane.Server/Migrations/Tenant/06010402_ResetTimeZone.cs index 6e614cd0..df6fcb36 100644 --- a/Oqtane.Server/Migrations/Tenant/06010402_ResetTimeZone.cs +++ b/Oqtane.Server/Migrations/Tenant/06010402_ResetTimeZone.cs @@ -18,10 +18,10 @@ namespace Oqtane.Migrations.Tenant { // resetting value as framework now uses IANA ID consistently for time zones var siteEntityBuilder = new SiteEntityBuilder(migrationBuilder, ActiveDatabase); - siteEntityBuilder.UpdateColumn("TimeZoneId", "''"); + siteEntityBuilder.UpdateData("TimeZoneId", "''"); var userEntityBuilder = new UserEntityBuilder(migrationBuilder, ActiveDatabase); - userEntityBuilder.UpdateColumn("TimeZoneId", "''"); + userEntityBuilder.UpdateData("TimeZoneId", "''"); } protected override void Down(MigrationBuilder migrationBuilder)