Skip to content

Commit d775f40

Browse files
committed
Optimize GetConnectionString
1 parent 29fbf3c commit d775f40

3 files changed

Lines changed: 4 additions & 11 deletions

File tree

src/Infrastructure/BotSharp.Abstraction/MLTasks/IText2SqlHook.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ public interface IText2SqlHook : IHookBase
66
{
77
// Get database type
88
string GetDatabaseType(RoleDialogModel message);
9-
string? GetConnectionString(RoleDialogModel message);
9+
string? GetConnectionString(RoleDialogModel message, string dataSource = null);
1010
Task SqlGenerated(RoleDialogModel message);
1111
Task SqlExecuting(RoleDialogModel message);
1212
Task SqlExecuted(RoleDialogModel message);

src/Plugins/BotSharp.Plugin.SqlDriver/Functions/ExecuteQueryFn.cs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,15 @@ public class ExecuteQueryFn : IFunctionCallback
44
{
55
public string Name => "execute_sql";
66
public string Indication => "Performing data retrieval operation.";
7-
private readonly SqlDriverSetting _setting;
87
private readonly SqlExecuteService _sqlExecuteService;
98
private readonly IServiceProvider _services;
109
private readonly ILogger _logger;
1110

1211
public ExecuteQueryFn(IServiceProvider services,
13-
SqlDriverSetting setting,
1412
SqlExecuteService sqlExecuteService,
1513
ILogger<ExecuteQueryFn> logger)
1614
{
1715
_services = services;
18-
_setting = setting;
1916
_sqlExecuteService = sqlExecuteService;
2017
_logger = logger;
2118
}
@@ -26,8 +23,8 @@ public async Task<bool> Execute(RoleDialogModel message)
2623
//var refinedArgs = await RefineSqlStatement(message, args);
2724
var dbHook = _services.GetRequiredService<IText2SqlHook>();
2825
var dbType = dbHook.GetDatabaseType(message);
29-
var connectionString = _setting.Connections.FirstOrDefault(x => x.Name.Equals(args.DataSource, StringComparison.OrdinalIgnoreCase))?.ConnectionString;
30-
var dbConnectionString = dbHook.GetConnectionString(message) ?? connectionString ?? throw new Exception("database connection is not found");
26+
var dbConnectionString = dbHook.GetConnectionString(message, args.DataSource) ??
27+
throw new Exception("database connection is not found");
3128

3229
// Print all the SQL statements for debugging
3330
_logger.LogInformation("Executing SQL Statements: {SqlStatements}", string.Join("\r\n", args.SqlStatements));

src/Plugins/BotSharp.Plugin.SqlDriver/Functions/SqlSelectFn.cs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,10 @@ public class SqlSelectFn : IFunctionCallback
55
public string Name => "sql_select";
66
private readonly IServiceProvider _services;
77
private readonly SqlExecuteService _sqlExecuteService;
8-
private readonly SqlDriverSetting _settings;
98

109
public SqlSelectFn(IServiceProvider services,
11-
SqlExecuteService sqlExecuteService,
12-
SqlDriverSetting settings)
10+
SqlExecuteService sqlExecuteService)
1311
{
14-
_settings = settings;
1512
_services = services;
1613
_sqlExecuteService = sqlExecuteService;
1714
}
@@ -30,7 +27,6 @@ public async Task<bool> Execute(RoleDialogModel message)
3027
var dbHook = _services.GetRequiredService<IText2SqlHook>();
3128
var dbType = dbHook.GetDatabaseType(message);
3229
var dbConnectionString = dbHook.GetConnectionString(message) ??
33-
_settings.Connections.FirstOrDefault(c => c.DbType == dbType)?.ConnectionString ??
3430
throw new Exception("database connectdion is not found");
3531

3632
var result = await (dbType switch

0 commit comments

Comments
 (0)