diff --git a/Directory.Build.props b/Directory.Build.props
index 90659bce..049856cb 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -2,7 +2,7 @@
net8.0
12.0
- 1.6.1
+ 2.0.0
true
false
diff --git a/src/Infrastructure/BotSharp.Abstraction/Repositories/BotSharpDatabaseSettings.cs b/src/Infrastructure/BotSharp.Abstraction/Repositories/BotSharpDatabaseSettings.cs
index ff077296..b3c26033 100644
--- a/src/Infrastructure/BotSharp.Abstraction/Repositories/BotSharpDatabaseSettings.cs
+++ b/src/Infrastructure/BotSharp.Abstraction/Repositories/BotSharpDatabaseSettings.cs
@@ -28,4 +28,4 @@ public class DbConnectionSetting
{
Slavers = new string[0];
}
-}
+}
\ No newline at end of file
diff --git a/src/Plugins/BotSharp.Plugin.MetaGLM/BotSharp.Plugin.MetaGLM.csproj b/src/Plugins/BotSharp.Plugin.MetaGLM/BotSharp.Plugin.MetaGLM.csproj
index 2ca728f8..2e43183c 100644
--- a/src/Plugins/BotSharp.Plugin.MetaGLM/BotSharp.Plugin.MetaGLM.csproj
+++ b/src/Plugins/BotSharp.Plugin.MetaGLM/BotSharp.Plugin.MetaGLM.csproj
@@ -11,7 +11,7 @@
-
+
diff --git a/src/Plugins/BotSharp.Plugin.MongoStorage/MongoDbContext.cs b/src/Plugins/BotSharp.Plugin.MongoStorage/MongoDbContext.cs
index 50647776..8cc127bd 100644
--- a/src/Plugins/BotSharp.Plugin.MongoStorage/MongoDbContext.cs
+++ b/src/Plugins/BotSharp.Plugin.MongoStorage/MongoDbContext.cs
@@ -1,3 +1,5 @@
+using System.Web;
+
namespace BotSharp.Plugin.MongoStorage;
public class MongoDbContext
@@ -6,6 +8,8 @@ public class MongoDbContext
private readonly string _mongoDbDatabaseName;
private readonly string _collectionPrefix;
+ private const string DB_NAME_INDEX = "authSource";
+
public MongoDbContext(BotSharpDatabaseSettings dbSettings)
{
var mongoDbConnectionString = dbSettings.BotSharpMongoDb;
@@ -16,14 +20,27 @@ public class MongoDbContext
private string GetDatabaseName(string mongoDbConnectionString)
{
- var databaseName = mongoDbConnectionString.Substring(mongoDbConnectionString.LastIndexOf("/", StringComparison.InvariantCultureIgnoreCase) + 1);
- if (databaseName.Contains("?"))
+ var dbName = string.Empty;
+ if (!Uri.TryCreate(mongoDbConnectionString, UriKind.Absolute, out var conn))
{
- databaseName = databaseName.Substring(0, databaseName.IndexOf("?", StringComparison.InvariantCultureIgnoreCase));
+ return dbName;
}
- return databaseName;
+
+ 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;
}
+
private IMongoDatabase Database { get { return _mongoClient.GetDatabase(_mongoDbDatabaseName); } }
#region Indexes
diff --git a/src/Plugins/BotSharp.Plugin.SemanticKernel/BotSharp.Plugin.SemanticKernel.csproj b/src/Plugins/BotSharp.Plugin.SemanticKernel/BotSharp.Plugin.SemanticKernel.csproj
index b4661ed9..b8c4a8e9 100644
--- a/src/Plugins/BotSharp.Plugin.SemanticKernel/BotSharp.Plugin.SemanticKernel.csproj
+++ b/src/Plugins/BotSharp.Plugin.SemanticKernel/BotSharp.Plugin.SemanticKernel.csproj
@@ -11,8 +11,8 @@
-
-
+
+
diff --git a/src/Plugins/BotSharp.Plugin.WebDriver/BotSharp.Plugin.WebDriver.csproj b/src/Plugins/BotSharp.Plugin.WebDriver/BotSharp.Plugin.WebDriver.csproj
index 69909d90..892c3ca9 100644
--- a/src/Plugins/BotSharp.Plugin.WebDriver/BotSharp.Plugin.WebDriver.csproj
+++ b/src/Plugins/BotSharp.Plugin.WebDriver/BotSharp.Plugin.WebDriver.csproj
@@ -18,7 +18,7 @@
-
+
diff --git a/tests/BotSharp.Plugin.SemanticKernel.UnitTests/BotSharp.Plugin.SemanticKernel.UnitTests.csproj b/tests/BotSharp.Plugin.SemanticKernel.UnitTests/BotSharp.Plugin.SemanticKernel.UnitTests.csproj
index 516b56ab..c47fcead 100644
--- a/tests/BotSharp.Plugin.SemanticKernel.UnitTests/BotSharp.Plugin.SemanticKernel.UnitTests.csproj
+++ b/tests/BotSharp.Plugin.SemanticKernel.UnitTests/BotSharp.Plugin.SemanticKernel.UnitTests.csproj
@@ -11,15 +11,15 @@
-
-
+
+
-
-
+
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
-
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all