add table prefix

This commit is contained in:
Jicheng Lu 2023-09-12 17:34:50 -05:00
parent 075e9da5bf
commit 0c92997f84
4 changed files with 14 additions and 9 deletions

View file

@ -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; }
}

View file

@ -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<AgentCollection> Agents
=> Database.GetCollection<AgentCollection>("OneBrainAgents");
=> Database.GetCollection<AgentCollection>($"{_collectionPrefix}_Agents");
public IMongoCollection<ConversationCollection> Conversations
=> Database.GetCollection<ConversationCollection>("OneBrainConversations");
=> Database.GetCollection<ConversationCollection>($"{_collectionPrefix}_Conversations");
public IMongoCollection<ConversationDialogCollection> ConversationDialogs
=> Database.GetCollection<ConversationDialogCollection>("OneBrainConversationDialogs");
=> Database.GetCollection<ConversationDialogCollection>($"{_collectionPrefix}_ConversationDialogs");
public IMongoCollection<UserCollection> Users
=> Database.GetCollection<UserCollection>("OneBrainUsers");
=> Database.GetCollection<UserCollection>($"{_collectionPrefix}_Users");
public IMongoCollection<UserAgentCollection> UserAgents
=> Database.GetCollection<UserAgentCollection>("OneBrainUserAgents");
=> Database.GetCollection<UserAgentCollection>($"{_collectionPrefix}_UserAgents");
public IMongoCollection<RoutingItemCollection> RoutingItems
=> Database.GetCollection<RoutingItemCollection>("OneBrainRoutingItems");
=> Database.GetCollection<RoutingItemCollection>($"{_collectionPrefix}_RoutingItems");
public IMongoCollection<RoutingProfileCollection> RoutingProfiles
=> Database.GetCollection<RoutingProfileCollection>("OneBrainRoutingProfiles");
=> Database.GetCollection<RoutingProfileCollection>($"{_collectionPrefix}_RoutingProfiles");
}

View file

@ -14,7 +14,7 @@ public class MongoStoragePlugin : IBotSharpPlugin
services.AddScoped((IServiceProvider x) =>
{
var dbSettings = x.GetRequiredService<BotSharpDatabaseSettings>();
return new MongoDbContext(dbSettings.MongoDb);
return new MongoDbContext(dbSettings);
});
services.AddScoped<IBotSharpRepository, MongoRepository>();

View file

@ -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",