BotSharp icon indicating copy to clipboard operation
BotSharp copied to clipboard

MongoDbContext.cs GetDatabaseName Function Not Working Well

Open yavuzgunay opened this issue 1 year ago • 2 comments

Hi,

I had a problem getting the database name in the function you just wrote. I use the connection string structure provided by MongoDB. I've improved your code below. I updated your structure and authSource to bring the database name from there if there is one. If it fits your structure, you can apply this code in the project.

My connectionString structure "mongodb+srv://server.example.com/?connectTimeoutMS=300000&authSource=aDifferentAuthDB"

private string GetDatabaseName(string mongoDbConnectionString) { int dbNameStartIndex = mongoDbConnectionString.IndexOf("authSource=") + "authSource=".Length; if (dbNameStartIndex < "authSource=".Length) { var databaseName = mongoDbConnectionString.Substring(mongoDbConnectionString.LastIndexOf("/", StringComparison.InvariantCultureIgnoreCase) + 1); if (databaseName.Contains("?")) { databaseName = databaseName.Substring(0, databaseName.IndexOf("?", StringComparison.InvariantCultureIgnoreCase)); } return databaseName; } int dbNameEndIndex = mongoDbConnectionString.IndexOf('&', dbNameStartIndex); if (dbNameEndIndex == -1) { dbNameEndIndex = mongoDbConnectionString.Length; } return mongoDbConnectionString.Substring(dbNameStartIndex, dbNameEndIndex - dbNameStartIndex); }

yavuzgunay avatar Jul 21 '24 06:07 yavuzgunay

@iceljc Can you take look at this? @yavuzgunay It will be more productive if you can PR this change.

Oceania2018 avatar Jul 21 '24 12:07 Oceania2018

@Oceania2018 @yavuzgunay

Here is the PR. https://github.com/SciSharp/BotSharp/pull/558

iceljc avatar Jul 22 '24 05:07 iceljc