fix db name

This commit is contained in:
Jicheng Lu 2024-07-23 19:38:18 -05:00
parent aee41a0ac7
commit 526249420a

View file

@ -1,4 +1,5 @@
using System.Web;
using System.Xml.Linq;
namespace BotSharp.Plugin.MongoStorage;
@ -20,27 +21,14 @@ public class MongoDbContext
private string GetDatabaseName(string mongoDbConnectionString)
{
var dbName = string.Empty;
if (!Uri.TryCreate(mongoDbConnectionString, UriKind.Absolute, out var conn))
var databaseName = mongoDbConnectionString.Substring(mongoDbConnectionString.LastIndexOf("/", StringComparison.InvariantCultureIgnoreCase) + 1);
if (databaseName.Contains("?"))
{
return dbName;
databaseName = databaseName.Substring(0, databaseName.IndexOf("?", StringComparison.InvariantCultureIgnoreCase));
}
var query = HttpUtility.ParseQueryString(conn.Query);
var keys = query.AllKeys ?? [];
if (keys.Contains(DB_NAME_INDEX))
{
dbName = query[DB_NAME_INDEX];
}
else
{
dbName = conn.Segments?.FirstOrDefault(x => x != "/") ?? string.Empty;
}
return dbName;
return databaseName;
}
private IMongoDatabase Database { get { return _mongoClient.GetDatabase(_mongoDbDatabaseName); } }
#region Indexes