33 lines
1,008 B
C#
33 lines
1,008 B
C#
using BotSharp.Abstraction.Loggers;
|
|
using BotSharp.Abstraction.Repositories;
|
|
using System.IO;
|
|
|
|
namespace BotSharp.Plugin.SqlDriver.Hooks;
|
|
|
|
public class SqlDriverContentGeneratingHook : IContentGeneratingHook
|
|
{
|
|
private readonly IServiceProvider _services;
|
|
public SqlDriverContentGeneratingHook(IServiceProvider services)
|
|
{
|
|
_services = services;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Inject useful variables generated by previous SQL query.
|
|
/// </summary>
|
|
/// <param name="agent"></param>
|
|
/// <param name="conversations"></param>
|
|
/// <returns></returns>
|
|
public async Task BeforeGenerating(Agent agent, List<RoleDialogModel> conversations)
|
|
{
|
|
if (agent.Id != "beda4c12-e1ec-4b4b-b328-3df4a6687c4f")
|
|
{
|
|
return;
|
|
}
|
|
|
|
var sqlDriver = _services.GetRequiredService<SqlDriverService>();
|
|
agent.TemplateDict["return_variables"] = sqlDriver.Statements.Select(x => x.Return.Alias).ToArray();
|
|
await Task.CompletedTask;
|
|
}
|
|
}
|