From d07935736877d9579b4824080596c82d705755a7 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Tue, 26 Sep 2023 14:29:48 +0300 Subject: [PATCH 1/2] Introduce MongoDbDatabaseEventHandlerBase --- .../MongoDbDatabaseEventHandlerBase.cs | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/MongoDbDatabaseEventHandlerBase.cs diff --git a/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/MongoDbDatabaseEventHandlerBase.cs b/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/MongoDbDatabaseEventHandlerBase.cs new file mode 100644 index 0000000000..551ff3adb4 --- /dev/null +++ b/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/MongoDbDatabaseEventHandlerBase.cs @@ -0,0 +1,58 @@ +using System; +using System.Threading.Tasks; +using Volo.Abp.DependencyInjection; +using Volo.Abp.EventBus.Distributed; +using Volo.Abp.MultiTenancy; + +namespace Volo.Abp.MongoDB; + +public abstract class MongoDbDatabaseEventHandlerBase : + IDistributedEventHandler, + IDistributedEventHandler, + ITransientDependency + where TDbContext : IAbpMongoDbContext +{ + protected string DatabaseName { get; } + + + protected MongoDbDatabaseEventHandlerBase(string databaseName) + { + DatabaseName = databaseName; + } + + public virtual async Task HandleEventAsync(TenantCreatedEto eventData) + { + await SeedAsync(eventData.Id); + + await AfterTenantCreated(eventData); + } + + protected virtual Task AfterTenantCreated(TenantCreatedEto eventData) + { + return Task.CompletedTask; + } + + public virtual async Task HandleEventAsync(TenantConnectionStringUpdatedEto eventData) + { + if (eventData.ConnectionStringName != DatabaseName && + eventData.ConnectionStringName != Data.ConnectionStrings.DefaultConnectionStringName || + eventData.NewValue.IsNullOrWhiteSpace()) + { + return; + } + + await SeedAsync(eventData.Id); + + await AfterTenantConnectionStringUpdated(eventData); + } + + protected virtual Task AfterTenantConnectionStringUpdated(TenantConnectionStringUpdatedEto eventData) + { + return Task.CompletedTask; + } + + protected virtual Task SeedAsync(Guid? tenantId) + { + return Task.CompletedTask; + } +} \ No newline at end of file From 59b78b01174c1b40ff2bdd3976633d6099dfdb54 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Wed, 27 Sep 2023 10:08:34 +0300 Subject: [PATCH 2/2] Rename & move MongoDbDatabaseEventHandlerBase --- .../MongoDatabaseMigrationEventHandlerBase.cs} | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) rename framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/{MongoDbDatabaseEventHandlerBase.cs => Migrations/MongoDatabaseMigrationEventHandlerBase.cs} (88%) diff --git a/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/MongoDbDatabaseEventHandlerBase.cs b/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/Migrations/MongoDatabaseMigrationEventHandlerBase.cs similarity index 88% rename from framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/MongoDbDatabaseEventHandlerBase.cs rename to framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/Migrations/MongoDatabaseMigrationEventHandlerBase.cs index 551ff3adb4..36a86551c5 100644 --- a/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/MongoDbDatabaseEventHandlerBase.cs +++ b/framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/Migrations/MongoDatabaseMigrationEventHandlerBase.cs @@ -4,9 +4,9 @@ using Volo.Abp.DependencyInjection; using Volo.Abp.EventBus.Distributed; using Volo.Abp.MultiTenancy; -namespace Volo.Abp.MongoDB; +namespace Volo.Abp.MongoDB.Migrations; -public abstract class MongoDbDatabaseEventHandlerBase : +public abstract class MongoDatabaseMigrationEventHandlerBase : IDistributedEventHandler, IDistributedEventHandler, ITransientDependency @@ -15,7 +15,7 @@ public abstract class MongoDbDatabaseEventHandlerBase : protected string DatabaseName { get; } - protected MongoDbDatabaseEventHandlerBase(string databaseName) + protected MongoDatabaseMigrationEventHandlerBase(string databaseName) { DatabaseName = databaseName; }