add to setting
This commit is contained in:
parent
0d23d00d8d
commit
a4ee5ba049
|
|
@ -4,7 +4,7 @@ public class BotSharpDatabaseSettings : DatabaseBasicSettings
|
|||
{
|
||||
public string[] Assemblies { get; set; }
|
||||
public string FileRepository { get; set; }
|
||||
public string BotSharpMongoDb { get; set; }
|
||||
public BotSharpMongoDbSetting BotSharpMongoDb { get; set; }
|
||||
public string TablePrefix { get; set; }
|
||||
public DbConnectionSetting BotSharp { get; set; }
|
||||
public string Redis { get; set; }
|
||||
|
|
@ -29,3 +29,9 @@ public class DbConnectionSetting
|
|||
Slavers = new string[0];
|
||||
}
|
||||
}
|
||||
|
||||
public class BotSharpMongoDbSetting
|
||||
{
|
||||
public string ConnectionString { get; set; }
|
||||
public string? DbNameIndex { get; set; }
|
||||
}
|
||||
|
|
@ -15,13 +15,14 @@ public class MongoDbContext
|
|||
|
||||
public MongoDbContext(BotSharpDatabaseSettings dbSettings)
|
||||
{
|
||||
var mongoDbConnectionString = dbSettings.BotSharpMongoDb;
|
||||
var mongoDbConnectionString = dbSettings.BotSharpMongoDb.ConnectionString;
|
||||
var dbNameIndex = dbSettings.BotSharpMongoDb.DbNameIndex;
|
||||
_mongoClient = new MongoClient(mongoDbConnectionString);
|
||||
_mongoDbDatabaseName = GetDatabaseName(mongoDbConnectionString);
|
||||
_mongoDbDatabaseName = GetDatabaseName(mongoDbConnectionString, dbNameIndex);
|
||||
_collectionPrefix = dbSettings.TablePrefix.IfNullOrEmptyAs("BotSharp");
|
||||
}
|
||||
|
||||
private string GetDatabaseName(string mongoDbConnectionString)
|
||||
private string GetDatabaseName(string mongoDbConnectionString, string? dbNameIndex = null)
|
||||
{
|
||||
var dbName = string.Empty;
|
||||
if (!Uri.TryCreate(mongoDbConnectionString, UriKind.Absolute, out var conn))
|
||||
|
|
@ -30,15 +31,15 @@ public class MongoDbContext
|
|||
}
|
||||
|
||||
var query = HttpUtility.ParseQueryString(conn.Query);
|
||||
dbName = conn.Segments?.FirstOrDefault(x => x != "/") ?? string.Empty;
|
||||
var keys = query.AllKeys ?? [];
|
||||
foreach (var db in _dbIndexes)
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(dbNameIndex) && keys.Contains(dbNameIndex))
|
||||
{
|
||||
if (keys.Contains(db))
|
||||
{
|
||||
dbName = query[db];
|
||||
break;
|
||||
}
|
||||
dbName = query[dbNameIndex];
|
||||
}
|
||||
else
|
||||
{
|
||||
dbName = conn.Segments?.FirstOrDefault(x => x != "/") ?? string.Empty;
|
||||
}
|
||||
return dbName;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -226,7 +226,10 @@
|
|||
"Database": {
|
||||
"Default": "FileRepository",
|
||||
"TablePrefix": "BotSharp",
|
||||
"BotSharpMongoDb": "",
|
||||
"BotSharpMongoDb": {
|
||||
"ConnectionString": "",
|
||||
"DbIndex": ""
|
||||
},
|
||||
"FileRepository": "data",
|
||||
"Assemblies": [ "BotSharp.Core" ]
|
||||
},
|
||||
|
|
|
|||
Loading…
Reference in a new issue