diff --git a/src/Infrastructure/BotSharp.Abstraction/Repositories/BotSharpDatabaseSettings.cs b/src/Infrastructure/BotSharp.Abstraction/Repositories/BotSharpDatabaseSettings.cs index 54cabe8b..0c902b24 100644 --- a/src/Infrastructure/BotSharp.Abstraction/Repositories/BotSharpDatabaseSettings.cs +++ b/src/Infrastructure/BotSharp.Abstraction/Repositories/BotSharpDatabaseSettings.cs @@ -5,6 +5,7 @@ public class BotSharpDatabaseSettings : DatabaseBasicSettings public string[] Assemblies { get; set; } public string FileRepository { get; set; } public string MongoDb { get; set; } + public string TablePrefix { get; set; } public DbConnectionSetting BotSharp { get; set; } } diff --git a/src/Plugins/BotSharp.Plugin.MongoStorage/MongoDbContext.cs b/src/Plugins/BotSharp.Plugin.MongoStorage/MongoDbContext.cs index 7423fed1..4782a5b3 100644 --- a/src/Plugins/BotSharp.Plugin.MongoStorage/MongoDbContext.cs +++ b/src/Plugins/BotSharp.Plugin.MongoStorage/MongoDbContext.cs @@ -6,11 +6,14 @@ public class MongoDbContext { private readonly MongoClient _mongoClient; private readonly string _mongoDbDatabaseName; + private readonly string _collectionPrefix; - public MongoDbContext(string mongoDbConnectionString) + public MongoDbContext(BotSharpDatabaseSettings dbSettings) { + var mongoDbConnectionString = dbSettings.MongoDb; _mongoClient = new MongoClient(mongoDbConnectionString); _mongoDbDatabaseName = GetDatabaseName(mongoDbConnectionString); + _collectionPrefix = dbSettings.TablePrefix; } private string GetDatabaseName(string mongoDbConnectionString) @@ -26,23 +29,23 @@ public class MongoDbContext private IMongoDatabase Database { get { return _mongoClient.GetDatabase(_mongoDbDatabaseName); } } public IMongoCollection Agents - => Database.GetCollection("OneBrainAgents"); + => Database.GetCollection($"{_collectionPrefix}_Agents"); public IMongoCollection Conversations - => Database.GetCollection("OneBrainConversations"); + => Database.GetCollection($"{_collectionPrefix}_Conversations"); public IMongoCollection ConversationDialogs - => Database.GetCollection("OneBrainConversationDialogs"); + => Database.GetCollection($"{_collectionPrefix}_ConversationDialogs"); public IMongoCollection Users - => Database.GetCollection("OneBrainUsers"); + => Database.GetCollection($"{_collectionPrefix}_Users"); public IMongoCollection UserAgents - => Database.GetCollection("OneBrainUserAgents"); + => Database.GetCollection($"{_collectionPrefix}_UserAgents"); public IMongoCollection RoutingItems - => Database.GetCollection("OneBrainRoutingItems"); + => Database.GetCollection($"{_collectionPrefix}_RoutingItems"); public IMongoCollection RoutingProfiles - => Database.GetCollection("OneBrainRoutingProfiles"); + => Database.GetCollection($"{_collectionPrefix}_RoutingProfiles"); } diff --git a/src/Plugins/BotSharp.Plugin.MongoStorage/MongoStoragePlugin.cs b/src/Plugins/BotSharp.Plugin.MongoStorage/MongoStoragePlugin.cs index b4f80895..644737ca 100644 --- a/src/Plugins/BotSharp.Plugin.MongoStorage/MongoStoragePlugin.cs +++ b/src/Plugins/BotSharp.Plugin.MongoStorage/MongoStoragePlugin.cs @@ -14,7 +14,7 @@ public class MongoStoragePlugin : IBotSharpPlugin services.AddScoped((IServiceProvider x) => { var dbSettings = x.GetRequiredService(); - return new MongoDbContext(dbSettings.MongoDb); + return new MongoDbContext(dbSettings); }); services.AddScoped(); diff --git a/src/WebStarter/appsettings.json b/src/WebStarter/appsettings.json index a3117468..0e026982 100644 --- a/src/WebStarter/appsettings.json +++ b/src/WebStarter/appsettings.json @@ -63,6 +63,7 @@ "Database": { "Default": "FileRepository", + "TablePrefix": "OneBrain", "MongoDb": "", "BotSharp": { "Master": "Data Source=(localdb)\\ProjectModels;Initial Catalog=BotSharp;Integrated Security=True;Connect Timeout=30;Encrypt=False;Trust Server Certificate=False;Application Intent=ReadWrite;Multi Subnet Failover=False",