Stable run using Multi tenancy across entire estate

Audit logging and error logging active
This commit is contained in:
2026-09-24 12:00:47 +02:00
parent 8e0c099867
commit 020bdee36f
40 changed files with 11004 additions and 394 deletions
@@ -73,8 +73,6 @@ public sealed class ApplicationDbContext(DbContextOptions<ApplicationDbContext>
{
base.OnModelCreating(modelBuilder);
modelBuilder.ApplyConfigurationsFromAssembly(Assembly.GetExecutingAssembly());
foreach (var entityType in modelBuilder.Model.GetEntityTypes())
{
if (typeof(ITenantEntity).IsAssignableFrom(entityType.ClrType))
@@ -89,8 +87,11 @@ public sealed class ApplicationDbContext(DbContextOptions<ApplicationDbContext>
modelBuilder.Entity<Organisation>().HasQueryFilter(o => BypassFilter ||
Set<TenantOrganisation>().Any(to => to.TenantId == CurrentTenantId && to.OrganisationId == o.Id));
modelBuilder.Entity<User>().HasQueryFilter(o => BypassFilter ||
Set<TenantUser>().Any(to => to.TenantId == CurrentTenantId && to.UserId == o.Id));
modelBuilder.Entity<TenantOrganisation>()
.HasQueryFilter(to => BypassFilter || to.TenantId == CurrentTenantId);
modelBuilder.Entity<TenantUser>()
.HasQueryFilter(to => BypassFilter || to.TenantId == CurrentTenantId);
}
public override Task<int> SaveChangesAsync(CancellationToken cancellationToken = default)
@@ -0,0 +1,50 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace PostFundManagement.Infrastructure.Database.Migrations
{
/// <inheritdoc />
public partial class AddedTenantIdToOutcomes : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<long>(
name: "TenantId",
table: "Outcomes",
type: "bigint",
nullable: false,
defaultValue: 0L);
migrationBuilder.CreateIndex(
name: "IX_Outcomes_TenantId",
table: "Outcomes",
column: "TenantId");
migrationBuilder.AddForeignKey(
name: "FK_Outcomes_Tenants_TenantId",
table: "Outcomes",
column: "TenantId",
principalTable: "Tenants",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_Outcomes_Tenants_TenantId",
table: "Outcomes");
migrationBuilder.DropIndex(
name: "IX_Outcomes_TenantId",
table: "Outcomes");
migrationBuilder.DropColumn(
name: "TenantId",
table: "Outcomes");
}
}
}