forked from SciSharp/BotSharp
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGraphKnowledgeService.cs
More file actions
37 lines (31 loc) · 1.11 KB
/
GraphKnowledgeService.cs
File metadata and controls
37 lines (31 loc) · 1.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
using BotSharp.Abstraction.Graph.Options;
namespace BotSharp.Plugin.KnowledgeBase.Graph;
public partial class GraphKnowledgeService : IGraphKnowledgeService
{
private readonly IServiceProvider _services;
private readonly ILogger<GraphKnowledgeService> _logger;
private readonly KnowledgeBaseSettings _settings;
public GraphKnowledgeService(
IServiceProvider services,
ILogger<GraphKnowledgeService> logger,
KnowledgeBaseSettings settings)
{
_services = services;
_logger = logger;
_settings = settings;
}
public async Task<GraphQueryResult> ExecuteQueryAsync(string query, GraphQueryOptions? options = null)
{
var db = GetGraphDb(options?.Provider);
var result = await db.ExecuteQueryAsync(query, options);
return result;
}
#region Private methods
private IGraphDb GetGraphDb(string? provider = null)
{
var graphProvider = provider ?? _settings.GraphDb.Provider;
var db = _services.GetServices<IGraphDb>().FirstOrDefault(x => x.Provider == graphProvider);
return db;
}
#endregion
}