using ASC.Common; using ASC.Core.Common.EF.Model; using Microsoft.EntityFrameworkCore; namespace ASC.Core.Common.EF.Context { public partial class TenantDbContext : BaseDbContext { public DbSet Tenants { get; set; } public DbSet Users { get; set; } public DbSet UserSecurity { get; set; } public DbSet TenantVersion { get; set; } public DbSet TenantPartner { get; set; } public DbSet TenantForbiden { get; set; } public DbSet TenantIpRestrictions { get; set; } public DbSet CoreSettings { get; set; } public TenantDbContext() { } public TenantDbContext(DbContextOptions options) : base(options) { Database.EnsureCreated(); } protected override void OnModelCreating(ModelBuilder modelBuilder) { if (baseName == "default") { modelBuilder.MySqlAddUser(); modelBuilder.MySqlAddCoreSettings(); modelBuilder.MySqlAddDbTenant(); modelBuilder.MySqlAddUserSecurity(); modelBuilder.MySqlAddDbTenantForbiden(); modelBuilder.MySqlAddTenantIpRestrictions(); modelBuilder.MySqlAddDbTenantPartner(); modelBuilder.MySqlAddDbTenantVersion(); } else { modelBuilder.PgSqlAddUser(); modelBuilder.PgSqlAddCoreSettings(); modelBuilder.PgSqlAddDbTenant(); modelBuilder.PgSqlAddUserSecurity(); modelBuilder.PgSqlAddDbTenantForbiden(); modelBuilder.PgSqlAddTenantIpRestrictions(); modelBuilder.PgSqlAddDbTenantPartner(); modelBuilder.PgSqlAddDbTenantVersion(); } OnModelCreatingPartial(modelBuilder); } partial void OnModelCreatingPartial(ModelBuilder modelBuilder); } public static class TenantDbExtension { public static DIHelper AddTenantDbContextService(this DIHelper services) { return services.AddDbContextManagerService(); } } }