From 1a32b4b69d92e22343685a3cd79ff17048e6c4df Mon Sep 17 00:00:00 2001 From: AlexGreatDev Date: Thu, 15 May 2025 20:38:10 +0330 Subject: [PATCH] Add EventFlowMongoInitializer for MongoDB setup Introduces the `EventFlowMongoInitializer` class in the `EventFlow.MongoDB.EventStore` namespace. This class facilitates the initialization of MongoDB event persistence by utilizing an `IServiceProvider` to manage dependencies and service lifetimes. The `Initialize` method creates a scope and retrieves an instance of `IMongoDbEventPersistenceInitializer` to perform the necessary setup. --- .../EventStore/EventFlowMongoInitializer.cs | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 Source/EventFlow.MongoDB/EventStore/EventFlowMongoInitializer.cs diff --git a/Source/EventFlow.MongoDB/EventStore/EventFlowMongoInitializer.cs b/Source/EventFlow.MongoDB/EventStore/EventFlowMongoInitializer.cs new file mode 100644 index 000000000..c540f88da --- /dev/null +++ b/Source/EventFlow.MongoDB/EventStore/EventFlowMongoInitializer.cs @@ -0,0 +1,24 @@ +using Microsoft.Extensions.DependencyInjection; +using System; +using System.Collections.Generic; +using System.Text; + +namespace EventFlow.MongoDB.EventStore +{ + public class EventFlowMongoInitializer + { + private readonly IServiceProvider _serviceProvider; + + public EventFlowMongoInitializer(IServiceProvider serviceProvider) + { + _serviceProvider = serviceProvider; + } + + public void Initialize() + { + using var scope = _serviceProvider.CreateScope(); + var initializer = scope.ServiceProvider.GetRequiredService(); + initializer.Initialize(); + } + } +}