2024-02-19 22:55:41 +00:00
|
|
|
using BotSharp.Plugin.SqlDriver.Models;
|
|
|
|
|
|
|
|
|
|
namespace BotSharp.Plugin.SqlDriver.Services;
|
|
|
|
|
|
|
|
|
|
public class SqlDriverService
|
|
|
|
|
{
|
|
|
|
|
private readonly IServiceProvider _services;
|
|
|
|
|
public List<SqlStatement> Statements => _statements;
|
|
|
|
|
private static List<SqlStatement> _statements = new List<SqlStatement>();
|
|
|
|
|
|
|
|
|
|
public SqlDriverService(IServiceProvider services)
|
|
|
|
|
{
|
|
|
|
|
_services = services;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void Enqueue(SqlStatement statement)
|
|
|
|
|
{
|
|
|
|
|
var state = _services.GetRequiredService<IConversationStateService>();
|
|
|
|
|
|
|
|
|
|
_statements.Add(statement);
|
|
|
|
|
|
|
|
|
|
foreach (var sql in _statements)
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine();
|
|
|
|
|
|
2024-02-21 23:15:54 +00:00
|
|
|
Console.WriteLine($"{sql.Reason}");
|
2024-02-19 22:55:41 +00:00
|
|
|
|
2024-07-15 20:06:22 +00:00
|
|
|
Console.WriteLine(sql.Statement);
|
2024-02-19 22:55:41 +00:00
|
|
|
foreach (var p in sql.Parameters)
|
|
|
|
|
{
|
2024-07-15 20:06:22 +00:00
|
|
|
Console.WriteLine($"@{p.Name} = '{p.Value}'");
|
2024-02-19 22:55:41 +00:00
|
|
|
}
|
|
|
|
|
if (sql.Return != null)
|
|
|
|
|
{
|
|
|
|
|
Console.Write($"Return: ");
|
2024-02-21 23:15:54 +00:00
|
|
|
if (!string.IsNullOrEmpty(sql.Return.Value))
|
|
|
|
|
{
|
2024-07-15 20:06:22 +00:00
|
|
|
Console.WriteLine($" {sql.Return.Value}");
|
2024-02-21 23:15:54 +00:00
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2024-07-15 20:06:22 +00:00
|
|
|
Console.WriteLine($"{sql.Return.Name} as @{sql.Return.Alias}");
|
2024-02-21 23:15:54 +00:00
|
|
|
}
|
2024-02-19 22:55:41 +00:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|