Added suuport to inject an IOqtaneDatabase in EntityBuilders to allow each Database to control certain Migration behaviors. Also updated Installer to dynamically build Database Configuration section

This commit is contained in:
Charles Nurse
2021-03-27 11:16:16 -07:00
parent 3a032f401a
commit 2fb63e8117
74 changed files with 1028 additions and 407 deletions

View File

@ -1,6 +1,7 @@
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Migrations.Operations;
using Microsoft.EntityFrameworkCore.Migrations.Operations.Builders;
using Oqtane.Interfaces;
using Oqtane.Migrations.Extensions;
// ReSharper disable MemberCanBePrivate.Global
@ -14,7 +15,7 @@ namespace Oqtane.Migrations.EntityBuilders
private readonly PrimaryKey<AliasEntityBuilder> _primaryKey = new("PK_Alias", x => x.AliasId);
private readonly ForeignKey<AliasEntityBuilder> _tenantForeignKey = new("FK_Alias_Tenant", x => x.TenantId, "Tenant", "TenantId", ReferentialAction.Cascade);
public AliasEntityBuilder(MigrationBuilder migrationBuilder) : base(migrationBuilder)
public AliasEntityBuilder(MigrationBuilder migrationBuilder, IOqtaneDatabase database) : base(migrationBuilder, database)
{
EntityTableName = _entityTableName;
PrimaryKey = _primaryKey;
@ -23,7 +24,7 @@ namespace Oqtane.Migrations.EntityBuilders
protected override AliasEntityBuilder BuildTable(ColumnsBuilder table)
{
AliasId = table.AddAutoIncrementColumn("AliasId");
AliasId = ActiveDatabase.AddAutoIncrementColumn(table,"AliasId");
Name = table.AddStringColumn("Name", 200);
TenantId = table.AddIntegerColumn("TenantId");
SiteId = table.AddIntegerColumn("SiteId");

View File

@ -1,6 +1,7 @@
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Migrations.Operations;
using Microsoft.EntityFrameworkCore.Migrations.Operations.Builders;
using Oqtane.Interfaces;
using Oqtane.Migrations.Extensions;
// ReSharper disable MemberCanBePrivate.Global
@ -14,7 +15,7 @@ namespace Oqtane.Migrations.EntityBuilders
private readonly PrimaryKey<AspNetUserClaimsEntityBuilder> _primaryKey = new("PK_AspNetUserClaims", x => x.Id);
private readonly ForeignKey<AspNetUserClaimsEntityBuilder> _aspNetUsersForeignKey = new("FK_AspNetUserClaims_AspNetUsers_UserId", x => x.UserId, "AspNetUsers", "Id", ReferentialAction.Cascade);
public AspNetUserClaimsEntityBuilder(MigrationBuilder migrationBuilder) : base(migrationBuilder)
public AspNetUserClaimsEntityBuilder(MigrationBuilder migrationBuilder, IOqtaneDatabase database) : base(migrationBuilder, database)
{
EntityTableName = _entityTableName;
PrimaryKey = _primaryKey;
@ -23,7 +24,7 @@ namespace Oqtane.Migrations.EntityBuilders
protected override AspNetUserClaimsEntityBuilder BuildTable(ColumnsBuilder table)
{
Id = table.AddAutoIncrementColumn("Id");
Id = ActiveDatabase.AddAutoIncrementColumn(table,"Id");
UserId = table.AddStringColumn("UserId", 450);
ClaimType = table.AddMaxStringColumn("ClaimType", true);
ClaimValue = table.AddMaxStringColumn("ClaimValue", true);

View File

@ -1,6 +1,7 @@
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Migrations.Operations;
using Microsoft.EntityFrameworkCore.Migrations.Operations.Builders;
using Oqtane.Interfaces;
using Oqtane.Migrations.Extensions;
// ReSharper disable MemberCanBePrivate.Global
@ -13,7 +14,7 @@ namespace Oqtane.Migrations.EntityBuilders
private const string _entityTableName = "AspNetUsers";
private readonly PrimaryKey<AspNetUsersEntityBuilder> _primaryKey = new("PK_AspNetUsers", x => x.Id);
public AspNetUsersEntityBuilder(MigrationBuilder migrationBuilder) : base(migrationBuilder)
public AspNetUsersEntityBuilder(MigrationBuilder migrationBuilder, IOqtaneDatabase database) : base(migrationBuilder, database)
{
EntityTableName = _entityTableName;
PrimaryKey = _primaryKey;

View File

@ -1,6 +1,7 @@
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Migrations.Operations;
using Microsoft.EntityFrameworkCore.Migrations.Operations.Builders;
using Oqtane.Interfaces;
using Oqtane.Migrations.Extensions;
// ReSharper disable UnusedAutoPropertyAccessor.Global
@ -10,7 +11,7 @@ namespace Oqtane.Migrations.EntityBuilders
{
public abstract class AuditableBaseEntityBuilder<TEntityBuilder> : BaseEntityBuilder<TEntityBuilder> where TEntityBuilder : BaseEntityBuilder<TEntityBuilder>
{
protected AuditableBaseEntityBuilder(MigrationBuilder migrationBuilder) : base (migrationBuilder)
protected AuditableBaseEntityBuilder(MigrationBuilder migrationBuilder, IOqtaneDatabase database) : base (migrationBuilder, database)
{
}

View File

@ -2,6 +2,7 @@ using System;
using System.Collections.Generic;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Migrations.Operations.Builders;
using Oqtane.Interfaces;
using Oqtane.Migrations.Extensions;
namespace Oqtane.Migrations.EntityBuilders
@ -10,9 +11,10 @@ namespace Oqtane.Migrations.EntityBuilders
{
private readonly MigrationBuilder _migrationBuilder;
protected BaseEntityBuilder(MigrationBuilder migrationBuilder)
protected BaseEntityBuilder(MigrationBuilder migrationBuilder, IOqtaneDatabase database)
{
_migrationBuilder = migrationBuilder;
ActiveDatabase = database;
ForeignKeys = new List<ForeignKey<TEntityBuilder>>();
}
@ -23,9 +25,10 @@ namespace Oqtane.Migrations.EntityBuilders
{
table.AddForeignKey(foreignKey);
}
}
protected IOqtaneDatabase ActiveDatabase { get; }
protected abstract TEntityBuilder BuildTable(ColumnsBuilder table);
protected string EntityTableName { get; init; }

View File

@ -1,6 +1,7 @@
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Migrations.Operations;
using Microsoft.EntityFrameworkCore.Migrations.Operations.Builders;
using Oqtane.Interfaces;
using Oqtane.Migrations.Extensions;
// ReSharper disable UnusedAutoPropertyAccessor.Global
@ -10,7 +11,7 @@ namespace Oqtane.Migrations.EntityBuilders
{
public abstract class DeletableAuditableBaseEntityBuilder<TEntityBuilder> : AuditableBaseEntityBuilder<TEntityBuilder> where TEntityBuilder : BaseEntityBuilder<TEntityBuilder>
{
protected DeletableAuditableBaseEntityBuilder(MigrationBuilder migrationBuilder) : base(migrationBuilder)
protected DeletableAuditableBaseEntityBuilder(MigrationBuilder migrationBuilder, IOqtaneDatabase database) : base(migrationBuilder, database)
{
}

View File

@ -2,6 +2,7 @@ using System;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Migrations.Operations;
using Microsoft.EntityFrameworkCore.Migrations.Operations.Builders;
using Oqtane.Interfaces;
using Oqtane.Migrations.Extensions;
// ReSharper disable UnusedAutoPropertyAccessor.Global
// ReSharper disable MemberCanBePrivate.Global
@ -10,7 +11,7 @@ namespace Oqtane.Migrations.EntityBuilders
{
public abstract class DeletableBaseEntityBuilder<TEntityBuilder> : BaseEntityBuilder<TEntityBuilder> where TEntityBuilder : BaseEntityBuilder<TEntityBuilder>
{
protected DeletableBaseEntityBuilder(MigrationBuilder migrationBuilder) : base(migrationBuilder)
protected DeletableBaseEntityBuilder(MigrationBuilder migrationBuilder, IOqtaneDatabase database) : base(migrationBuilder, database)
{
}

View File

@ -1,6 +1,7 @@
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Migrations.Operations;
using Microsoft.EntityFrameworkCore.Migrations.Operations.Builders;
using Oqtane.Interfaces;
using Oqtane.Migrations.Extensions;
// ReSharper disable MemberCanBePrivate.Global
@ -14,7 +15,7 @@ namespace Oqtane.Migrations.EntityBuilders
private readonly PrimaryKey<FileEntityBuilder> _primaryKey = new("PK_File", x => x.FileId);
private readonly ForeignKey<FileEntityBuilder> _folderForeignKey = new("FK_File_Folder", x => x.FolderId, "Folder", "FolderId", ReferentialAction.Cascade);
public FileEntityBuilder(MigrationBuilder migrationBuilder) : base(migrationBuilder)
public FileEntityBuilder(MigrationBuilder migrationBuilder, IOqtaneDatabase database) : base(migrationBuilder, database)
{
EntityTableName = _entityTableName;
PrimaryKey = _primaryKey;
@ -23,7 +24,7 @@ namespace Oqtane.Migrations.EntityBuilders
protected override FileEntityBuilder BuildTable(ColumnsBuilder table)
{
FileId = table.AddAutoIncrementColumn("FileId");
FileId = ActiveDatabase.AddAutoIncrementColumn(table,"FileId");
FolderId = table.AddIntegerColumn("FolderId");
Name = table.AddStringColumn("Name", 50);
Extension = table.AddStringColumn("Extension", 50);

View File

@ -1,6 +1,7 @@
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Migrations.Operations;
using Microsoft.EntityFrameworkCore.Migrations.Operations.Builders;
using Oqtane.Interfaces;
using Oqtane.Migrations.Extensions;
// ReSharper disable MemberCanBePrivate.Global
@ -14,7 +15,7 @@ namespace Oqtane.Migrations.EntityBuilders
private readonly PrimaryKey<FolderEntityBuilder> _primaryKey = new("PK_Folder", x => x.FolderId);
private readonly ForeignKey<FolderEntityBuilder> _siteForeignKey = new("FK_Folder_Site", x => x.SiteId, "Site", "SiteId", ReferentialAction.Cascade);
public FolderEntityBuilder(MigrationBuilder migrationBuilder) : base(migrationBuilder)
public FolderEntityBuilder(MigrationBuilder migrationBuilder, IOqtaneDatabase database) : base(migrationBuilder, database)
{
EntityTableName = _entityTableName;
PrimaryKey = _primaryKey;
@ -23,7 +24,7 @@ namespace Oqtane.Migrations.EntityBuilders
protected override FolderEntityBuilder BuildTable(ColumnsBuilder table)
{
FolderId = table.AddAutoIncrementColumn("FolderId");
FolderId = ActiveDatabase.AddAutoIncrementColumn(table,"FolderId");
SiteId = table.AddIntegerColumn("SiteId");
ParentId = table.AddIntegerColumn("ParentId", true);
Name = table.AddStringColumn("Name", 50);

View File

@ -1,6 +1,7 @@
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Migrations.Operations;
using Microsoft.EntityFrameworkCore.Migrations.Operations.Builders;
using Oqtane.Interfaces;
using Oqtane.Migrations.Extensions;
// ReSharper disable MemberCanBePrivate.Global
@ -13,7 +14,7 @@ namespace Oqtane.Migrations.EntityBuilders
private const string _entityTableName = "Job";
private readonly PrimaryKey<JobEntityBuilder> _primaryKey = new("PK_Job", x => x.JobId);
public JobEntityBuilder(MigrationBuilder migrationBuilder) : base(migrationBuilder)
public JobEntityBuilder(MigrationBuilder migrationBuilder, IOqtaneDatabase database) : base(migrationBuilder, database)
{
EntityTableName = _entityTableName;
PrimaryKey = _primaryKey;
@ -21,7 +22,7 @@ namespace Oqtane.Migrations.EntityBuilders
protected override JobEntityBuilder BuildTable(ColumnsBuilder table)
{
JobId = table.AddAutoIncrementColumn("JobId");
JobId = ActiveDatabase.AddAutoIncrementColumn(table,"JobId");
Name = table.AddStringColumn("Name", 200);
JobType = table.AddStringColumn("JobType", 200);
Frequency = table.AddStringColumn("Frequency", 1);

View File

@ -1,6 +1,7 @@
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Migrations.Operations;
using Microsoft.EntityFrameworkCore.Migrations.Operations.Builders;
using Oqtane.Interfaces;
using Oqtane.Migrations.Extensions;
// ReSharper disable MemberCanBePrivate.Global
// ReSharper disable UnusedAutoPropertyAccessor.Global
@ -13,7 +14,7 @@ namespace Oqtane.Migrations.EntityBuilders
private readonly PrimaryKey<JobLogEntityBuilder> _primaryKey = new("PK_JobLog", x => x.JobLogId);
private readonly ForeignKey<JobLogEntityBuilder> _jobLogForeignKey = new("FK_JobLog_Job", x => x.JobId, "Job", "JobId", ReferentialAction.Cascade);
public JobLogEntityBuilder(MigrationBuilder migrationBuilder) : base(migrationBuilder)
public JobLogEntityBuilder(MigrationBuilder migrationBuilder, IOqtaneDatabase database) : base(migrationBuilder, database)
{
EntityTableName = _entityTableName;
PrimaryKey = _primaryKey;
@ -22,7 +23,7 @@ namespace Oqtane.Migrations.EntityBuilders
protected override JobLogEntityBuilder BuildTable(ColumnsBuilder table)
{
JobLogId = table.AddAutoIncrementColumn("JobLogId");
JobLogId = ActiveDatabase.AddAutoIncrementColumn(table,"JobLogId");
JobId = table.AddIntegerColumn("JobId");
StartDate = table.AddDateTimeColumn("StartDate");
FinishDate = table.AddDateTimeColumn("FinishDate", true);

View File

@ -1,6 +1,7 @@
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Migrations.Operations;
using Microsoft.EntityFrameworkCore.Migrations.Operations.Builders;
using Oqtane.Interfaces;
using Oqtane.Migrations.Extensions;
// ReSharper disable MemberCanBePrivate.Global
@ -14,7 +15,7 @@ namespace Oqtane.Migrations.EntityBuilders
private readonly PrimaryKey<LanguageEntityBuilder> _primaryKey = new("PK_Language", x => x.LanguageId);
private readonly ForeignKey<LanguageEntityBuilder> _siteForeignKey = new("FK_Language_Site", x => x.SiteId, "Site", "SiteId", ReferentialAction.Cascade);
public LanguageEntityBuilder(MigrationBuilder migrationBuilder) : base(migrationBuilder)
public LanguageEntityBuilder(MigrationBuilder migrationBuilder, IOqtaneDatabase database) : base(migrationBuilder, database)
{
EntityTableName = _entityTableName;
PrimaryKey = _primaryKey;
@ -23,7 +24,7 @@ namespace Oqtane.Migrations.EntityBuilders
protected override LanguageEntityBuilder BuildTable(ColumnsBuilder table)
{
LanguageId = table.AddAutoIncrementColumn("LanguageId");
LanguageId = ActiveDatabase.AddAutoIncrementColumn(table,"LanguageId");
SiteId = table.AddIntegerColumn("SiteId");
Name = table.AddStringColumn("Name", 100);
Code = table.AddStringColumn("Code", 10);

View File

@ -1,6 +1,7 @@
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Migrations.Operations;
using Microsoft.EntityFrameworkCore.Migrations.Operations.Builders;
using Oqtane.Interfaces;
using Oqtane.Migrations.Extensions;
// ReSharper disable MemberCanBePrivate.Global
@ -14,7 +15,7 @@ namespace Oqtane.Migrations.EntityBuilders
private readonly PrimaryKey<LogEntityBuilder> _primaryKey = new("PK_Log", x => x.LogId);
private readonly ForeignKey<LogEntityBuilder> _siteForeignKey = new("FK_Log_Site", x => x.SiteId, "Site", "SiteId", ReferentialAction.Cascade);
public LogEntityBuilder(MigrationBuilder migrationBuilder) : base(migrationBuilder)
public LogEntityBuilder(MigrationBuilder migrationBuilder, IOqtaneDatabase database) : base(migrationBuilder, database)
{
EntityTableName = _entityTableName;
PrimaryKey = _primaryKey;
@ -23,7 +24,7 @@ namespace Oqtane.Migrations.EntityBuilders
protected override LogEntityBuilder BuildTable(ColumnsBuilder table)
{
LogId = table.AddAutoIncrementColumn("LogId");
LogId = ActiveDatabase.AddAutoIncrementColumn(table,"LogId");
SiteId = table.AddIntegerColumn("SiteId", true);
LogDate = table.AddDateTimeColumn("LogDate");
PageId = table.AddIntegerColumn("PageId", true);

View File

@ -1,6 +1,7 @@
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Migrations.Operations;
using Microsoft.EntityFrameworkCore.Migrations.Operations.Builders;
using Oqtane.Interfaces;
using Oqtane.Migrations.Extensions;
// ReSharper disable MemberCanBePrivate.Global
@ -13,7 +14,7 @@ namespace Oqtane.Migrations.EntityBuilders
private const string _entityTableName = "ModuleDefinition";
private readonly PrimaryKey<ModuleDefinitionsEntityBuilder> _primaryKey = new("PK_ModuleDefinition", x => x.ModuleDefinitionId);
public ModuleDefinitionsEntityBuilder(MigrationBuilder migrationBuilder) : base(migrationBuilder)
public ModuleDefinitionsEntityBuilder(MigrationBuilder migrationBuilder, IOqtaneDatabase database) : base(migrationBuilder, database)
{
EntityTableName = _entityTableName;
PrimaryKey = _primaryKey;
@ -21,7 +22,7 @@ namespace Oqtane.Migrations.EntityBuilders
protected override ModuleDefinitionsEntityBuilder BuildTable(ColumnsBuilder table)
{
ModuleDefinitionId = table.AddAutoIncrementColumn("ModuleDefinitionId");
ModuleDefinitionId = ActiveDatabase.AddAutoIncrementColumn(table,"ModuleDefinitionId");
ModuleDefinitionName = table.AddStringColumn("ModuleDefinitionName", 200);
Name = table.AddStringColumn("Name", 200, true);
Description = table.AddStringColumn("Description", 2000, true);

View File

@ -1,6 +1,7 @@
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Migrations.Operations;
using Microsoft.EntityFrameworkCore.Migrations.Operations.Builders;
using Oqtane.Interfaces;
using Oqtane.Migrations.Extensions;
// ReSharper disable MemberCanBePrivate.Global
@ -14,7 +15,7 @@ namespace Oqtane.Migrations.EntityBuilders
private readonly PrimaryKey<ModuleEntityBuilder> _primaryKey = new("PK_Module", x => x.ModuleId);
private readonly ForeignKey<ModuleEntityBuilder> _siteForeignKey = new("FK_Module_Site", x => x.SiteId, "Site", "SiteId", ReferentialAction.Cascade);
public ModuleEntityBuilder(MigrationBuilder migrationBuilder) : base(migrationBuilder)
public ModuleEntityBuilder(MigrationBuilder migrationBuilder, IOqtaneDatabase database) : base(migrationBuilder, database)
{
EntityTableName = _entityTableName;
PrimaryKey = _primaryKey;
@ -23,7 +24,7 @@ namespace Oqtane.Migrations.EntityBuilders
protected override ModuleEntityBuilder BuildTable(ColumnsBuilder table)
{
ModuleId = table.AddAutoIncrementColumn("ModuleId");
ModuleId = ActiveDatabase.AddAutoIncrementColumn(table,"ModuleId");
SiteId = table.AddIntegerColumn("SiteId");
ModuleDefinitionName = table.AddStringColumn("ModuleDefinitionName", 200);
AllPages = table.AddBooleanColumn("AllPages");

View File

@ -1,6 +1,7 @@
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Migrations.Operations;
using Microsoft.EntityFrameworkCore.Migrations.Operations.Builders;
using Oqtane.Interfaces;
using Oqtane.Migrations.Extensions;
// ReSharper disable MemberCanBePrivate.Global
@ -14,7 +15,7 @@ namespace Oqtane.Migrations.EntityBuilders
private readonly PrimaryKey<NotificationEntityBuilder> _primaryKey = new("PK_Notification", x => x.NotificationId);
private readonly ForeignKey<NotificationEntityBuilder> _siteForeignKey = new("FK_Notification_Site", x => x.SiteId, "Site", "SiteId", ReferentialAction.Cascade);
public NotificationEntityBuilder(MigrationBuilder migrationBuilder) : base(migrationBuilder)
public NotificationEntityBuilder(MigrationBuilder migrationBuilder, IOqtaneDatabase database) : base(migrationBuilder, database)
{
EntityTableName = _entityTableName;
PrimaryKey = _primaryKey;
@ -23,7 +24,7 @@ namespace Oqtane.Migrations.EntityBuilders
protected override NotificationEntityBuilder BuildTable(ColumnsBuilder table)
{
NotificationId = table.AddAutoIncrementColumn("NotificationId");
NotificationId = ActiveDatabase.AddAutoIncrementColumn(table,"NotificationId");
SiteId = table.AddIntegerColumn("SiteId");
FromUserId = table.AddIntegerColumn("FromUserId", true);
ToUserId = table.AddIntegerColumn("ToUserId", true);

View File

@ -1,6 +1,7 @@
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Migrations.Operations;
using Microsoft.EntityFrameworkCore.Migrations.Operations.Builders;
using Oqtane.Interfaces;
using Oqtane.Migrations.Extensions;
// ReSharper disable MemberCanBePrivate.Global
@ -14,7 +15,7 @@ namespace Oqtane.Migrations.EntityBuilders
private readonly PrimaryKey<PageEntityBuilder> _primaryKey = new("PK_Page", x => x.PageId);
private readonly ForeignKey<PageEntityBuilder> _siteForeignKey = new("FK_Page_Site", x => x.SiteId, "Site", "SiteId", ReferentialAction.Cascade);
public PageEntityBuilder(MigrationBuilder migrationBuilder) : base(migrationBuilder)
public PageEntityBuilder(MigrationBuilder migrationBuilder, IOqtaneDatabase database) : base(migrationBuilder, database)
{
EntityTableName = _entityTableName;
PrimaryKey = _primaryKey;
@ -23,9 +24,16 @@ namespace Oqtane.Migrations.EntityBuilders
protected override PageEntityBuilder BuildTable(ColumnsBuilder table)
{
PageId = table.AddAutoIncrementColumn("PageId");
PageId = ActiveDatabase.AddAutoIncrementColumn(table,"PageId");
SiteId = table.AddIntegerColumn("SiteId");
Path = table.AddStringColumn("Path", 50);
if (ActiveDatabase.Name == "SqlServer" || ActiveDatabase.Name == "LocalDB")
{
Path = table.AddStringColumn("Path", 50);
}
else
{
Path = table.AddStringColumn("Path", 256);
}
Name = table.AddStringColumn("Name", 50);
Title = table.AddStringColumn("Title", 200, true);
ThemeType = table.AddStringColumn("ThemeType", 200, true);

View File

@ -1,6 +1,7 @@
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Migrations.Operations;
using Microsoft.EntityFrameworkCore.Migrations.Operations.Builders;
using Oqtane.Interfaces;
using Oqtane.Migrations.Extensions;
// ReSharper disable MemberCanBePrivate.Global
@ -15,7 +16,7 @@ namespace Oqtane.Migrations.EntityBuilders
private readonly ForeignKey<PageModuleEntityBuilder> _moduleForeignKey = new("FK_PageModule_Module", x => x.ModuleId, "Module", "ModuleId", ReferentialAction.NoAction);
private readonly ForeignKey<PageModuleEntityBuilder> _pageForeignKey = new("FK_PageModule_Page", x => x.PageId, "Page", "PageId", ReferentialAction.Cascade);
public PageModuleEntityBuilder(MigrationBuilder migrationBuilder) : base(migrationBuilder)
public PageModuleEntityBuilder(MigrationBuilder migrationBuilder, IOqtaneDatabase database) : base(migrationBuilder, database)
{
EntityTableName = _entityTableName;
PrimaryKey = _primaryKey;
@ -25,7 +26,7 @@ namespace Oqtane.Migrations.EntityBuilders
protected override PageModuleEntityBuilder BuildTable(ColumnsBuilder table)
{
PageModuleId = table.AddAutoIncrementColumn("PageModuleId");
PageModuleId = ActiveDatabase.AddAutoIncrementColumn(table,"PageModuleId");
PageId = table.AddIntegerColumn("PageId");
ModuleId = table.AddIntegerColumn("ModuleId");
Title = table.AddStringColumn("Title", 200);

View File

@ -1,6 +1,7 @@
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Migrations.Operations;
using Microsoft.EntityFrameworkCore.Migrations.Operations.Builders;
using Oqtane.Interfaces;
using Oqtane.Migrations.Extensions;
// ReSharper disable MemberCanBePrivate.Global
@ -16,7 +17,7 @@ namespace Oqtane.Migrations.EntityBuilders
private readonly ForeignKey<PermissionEntityBuilder> _userForeignKey = new("FK_Permission_User", x => x.UserId, "User", "UserId", ReferentialAction.NoAction);
private readonly ForeignKey<PermissionEntityBuilder> _roleForeignKey = new("FK_Permission_Role", x => x.RoleId, "Role", "RoleId", ReferentialAction.NoAction);
public PermissionEntityBuilder(MigrationBuilder migrationBuilder) : base(migrationBuilder)
public PermissionEntityBuilder(MigrationBuilder migrationBuilder, IOqtaneDatabase database) : base(migrationBuilder, database)
{
EntityTableName = _entityTableName;
PrimaryKey = _primaryKey;
@ -27,7 +28,7 @@ namespace Oqtane.Migrations.EntityBuilders
protected override PermissionEntityBuilder BuildTable(ColumnsBuilder table)
{
PermissionId = table.AddAutoIncrementColumn("PermissionId");
PermissionId = ActiveDatabase.AddAutoIncrementColumn(table,"PermissionId");
SiteId = table.AddIntegerColumn("SiteId");
EntityName = table.AddStringColumn("EntityName", 50);
EntityId = table.AddIntegerColumn("EntityId");

View File

@ -1,6 +1,7 @@
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Migrations.Operations;
using Microsoft.EntityFrameworkCore.Migrations.Operations.Builders;
using Oqtane.Interfaces;
using Oqtane.Migrations.Extensions;
// ReSharper disable MemberCanBePrivate.Global
@ -14,7 +15,7 @@ namespace Oqtane.Migrations.EntityBuilders
private readonly PrimaryKey<ProfileEntityBuilder> _primaryKey = new("PK_Profile", x => x.ProfileId);
private readonly ForeignKey<ProfileEntityBuilder> _siteForeignKey = new("FK_Profile_Sites", x => x.SiteId, "Site", "SiteId", ReferentialAction.Cascade);
public ProfileEntityBuilder(MigrationBuilder migrationBuilder) : base(migrationBuilder)
public ProfileEntityBuilder(MigrationBuilder migrationBuilder, IOqtaneDatabase database) : base(migrationBuilder, database)
{
EntityTableName = _entityTableName;
PrimaryKey = _primaryKey;
@ -23,7 +24,7 @@ namespace Oqtane.Migrations.EntityBuilders
protected override ProfileEntityBuilder BuildTable(ColumnsBuilder table)
{
ProfileId = table.AddAutoIncrementColumn("ProfileId");
ProfileId = ActiveDatabase.AddAutoIncrementColumn(table,"ProfileId");
SiteId = table.AddIntegerColumn("SiteId", true);
Name = table.AddStringColumn("Name", 50);
Title = table.AddStringColumn("Title", 50);

View File

@ -1,6 +1,7 @@
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Migrations.Operations;
using Microsoft.EntityFrameworkCore.Migrations.Operations.Builders;
using Oqtane.Interfaces;
using Oqtane.Migrations.Extensions;
// ReSharper disable MemberCanBePrivate.Global
@ -14,7 +15,7 @@ namespace Oqtane.Migrations.EntityBuilders
private readonly PrimaryKey<RoleEntityBuilder> _primaryKey = new("PK_Role", x => x.RoleId);
private readonly ForeignKey<RoleEntityBuilder> _siteForeignKey = new("FK_Role_Site", x => x.SiteId, "Site", "SiteId", ReferentialAction.Cascade);
public RoleEntityBuilder(MigrationBuilder migrationBuilder) : base(migrationBuilder)
public RoleEntityBuilder(MigrationBuilder migrationBuilder, IOqtaneDatabase database) : base(migrationBuilder, database)
{
EntityTableName = _entityTableName;
PrimaryKey = _primaryKey;
@ -23,7 +24,7 @@ namespace Oqtane.Migrations.EntityBuilders
protected override RoleEntityBuilder BuildTable(ColumnsBuilder table)
{
RoleId = table.AddAutoIncrementColumn("RoleId");
RoleId = ActiveDatabase.AddAutoIncrementColumn(table,"RoleId");
SiteId = table.AddIntegerColumn("SiteId", true);
Name = table.AddStringColumn("Name", 256);
Description = table.AddStringColumn("Description", 256);

View File

@ -1,6 +1,7 @@
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Migrations.Operations;
using Microsoft.EntityFrameworkCore.Migrations.Operations.Builders;
using Oqtane.Interfaces;
using Oqtane.Migrations.Extensions;
// ReSharper disable MemberCanBePrivate.Global
@ -13,7 +14,7 @@ namespace Oqtane.Migrations.EntityBuilders
private const string _entityTableName = "Setting";
private readonly PrimaryKey<SettingEntityBuilder> _primaryKey = new("PK_Setting", x => x.SettingId);
public SettingEntityBuilder(MigrationBuilder migrationBuilder) : base(migrationBuilder)
public SettingEntityBuilder(MigrationBuilder migrationBuilder, IOqtaneDatabase database) : base(migrationBuilder, database)
{
EntityTableName = _entityTableName;
PrimaryKey = _primaryKey;
@ -21,7 +22,7 @@ namespace Oqtane.Migrations.EntityBuilders
protected override SettingEntityBuilder BuildTable(ColumnsBuilder table)
{
SettingId = table.AddAutoIncrementColumn("SettingId");
SettingId = ActiveDatabase.AddAutoIncrementColumn(table,"SettingId");
EntityName = table.AddStringColumn("EntityName", 50);
EntityId = table.AddIntegerColumn("EntityId");
SettingName = table.AddStringColumn("SettingName", 50);

View File

@ -1,6 +1,7 @@
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Migrations.Operations;
using Microsoft.EntityFrameworkCore.Migrations.Operations.Builders;
using Oqtane.Interfaces;
using Oqtane.Migrations.Extensions;
// ReSharper disable MemberCanBePrivate.Global
@ -13,7 +14,7 @@ namespace Oqtane.Migrations.EntityBuilders
private const string _entityTableName = "Site";
private readonly PrimaryKey<SiteEntityBuilder> _primaryKey = new("PK_Site", x => x.SiteId);
public SiteEntityBuilder(MigrationBuilder migrationBuilder) : base(migrationBuilder)
public SiteEntityBuilder(MigrationBuilder migrationBuilder, IOqtaneDatabase database) : base(migrationBuilder, database)
{
EntityTableName = _entityTableName;
PrimaryKey = _primaryKey;
@ -21,7 +22,7 @@ namespace Oqtane.Migrations.EntityBuilders
protected override SiteEntityBuilder BuildTable(ColumnsBuilder table)
{
SiteId = table.AddAutoIncrementColumn("SiteId");
SiteId = ActiveDatabase.AddAutoIncrementColumn(table,"SiteId");
TenantId = table.AddIntegerColumn("TenantId");
Name = table.AddStringColumn("Name", 200);
LogoFileId = table.AddIntegerColumn("LogoFileId", true);

View File

@ -1,6 +1,7 @@
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Migrations.Operations;
using Microsoft.EntityFrameworkCore.Migrations.Operations.Builders;
using Oqtane.Interfaces;
using Oqtane.Migrations.Extensions;
// ReSharper disable MemberCanBePrivate.Global
@ -13,7 +14,7 @@ namespace Oqtane.Migrations.EntityBuilders
private const string _entityTableName = "Tenant";
private readonly PrimaryKey<TenantEntityBuilder> _primaryKey = new("PK_Tenant", x => x.TenantId);
public TenantEntityBuilder(MigrationBuilder migrationBuilder): base(migrationBuilder)
public TenantEntityBuilder(MigrationBuilder migrationBuilder, IOqtaneDatabase database): base(migrationBuilder, database)
{
EntityTableName = _entityTableName;
PrimaryKey = _primaryKey;
@ -21,7 +22,7 @@ namespace Oqtane.Migrations.EntityBuilders
protected override TenantEntityBuilder BuildTable(ColumnsBuilder table)
{
TenantId = table.AddAutoIncrementColumn("TenantId");
TenantId = ActiveDatabase.AddAutoIncrementColumn(table,"TenantId");
Name = table.AddStringColumn("Name", 100);
DBConnectionString = table.AddStringColumn("DBConnectionString", 1024);
Version = table.AddStringColumn("Version", 50, true);

View File

@ -1,6 +1,7 @@
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Migrations.Operations;
using Microsoft.EntityFrameworkCore.Migrations.Operations.Builders;
using Oqtane.Interfaces;
using Oqtane.Migrations.Extensions;
// ReSharper disable MemberCanBePrivate.Global
@ -13,7 +14,7 @@ namespace Oqtane.Migrations.EntityBuilders
private const string _entityTableName = "User";
private readonly PrimaryKey<UserEntityBuilder> _primaryKey = new("PK_User", x => x.UserId);
public UserEntityBuilder(MigrationBuilder migrationBuilder) : base(migrationBuilder)
public UserEntityBuilder(MigrationBuilder migrationBuilder, IOqtaneDatabase database) : base(migrationBuilder, database)
{
EntityTableName = _entityTableName;
PrimaryKey = _primaryKey;
@ -21,7 +22,7 @@ namespace Oqtane.Migrations.EntityBuilders
protected override UserEntityBuilder BuildTable(ColumnsBuilder table)
{
UserId = table.AddAutoIncrementColumn("UserId");
UserId = ActiveDatabase.AddAutoIncrementColumn(table,"UserId");
Username = table.AddStringColumn("Username", 256);
DisplayName = table.AddStringColumn("DisplayName", 50);
Email = table.AddStringColumn("Email", 256);

View File

@ -1,6 +1,7 @@
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Migrations.Operations;
using Microsoft.EntityFrameworkCore.Migrations.Operations.Builders;
using Oqtane.Interfaces;
using Oqtane.Migrations.Extensions;
// ReSharper disable MemberCanBePrivate.Global
@ -15,7 +16,7 @@ namespace Oqtane.Migrations.EntityBuilders
private readonly ForeignKey<UserRoleEntityBuilder> _userForeignKey = new("FK_UserRole_User", x => x.UserId, "User", "UserId", ReferentialAction.Cascade);
private readonly ForeignKey<UserRoleEntityBuilder> _roleForeignKey = new("FK_UserRole_Role", x => x.RoleId, "Role", "RoleId", ReferentialAction.NoAction);
public UserRoleEntityBuilder(MigrationBuilder migrationBuilder) : base(migrationBuilder)
public UserRoleEntityBuilder(MigrationBuilder migrationBuilder, IOqtaneDatabase database) : base(migrationBuilder, database)
{
EntityTableName = _entityTableName;
PrimaryKey = _primaryKey;
@ -25,7 +26,7 @@ namespace Oqtane.Migrations.EntityBuilders
protected override UserRoleEntityBuilder BuildTable(ColumnsBuilder table)
{
UserRoleId = table.AddAutoIncrementColumn("UserRoleId");
UserRoleId = ActiveDatabase.AddAutoIncrementColumn(table,"UserRoleId");
UserId = table.AddIntegerColumn("UserId");
RoleId = table.AddIntegerColumn("RoleId");
EffectiveDate = table.AddDateTimeColumn("EffectiveDate", true);