BotSharp/src/Plugins/BotSharp.Plugin.SqlDriver/Hooks/SqlDriverContentGeneratingHook.cs
2024-02-19 16:55:41 -06:00

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;
}
}