Files
QuantEngineByItz/src/dotnet/QuantEngine.Infrastructure/Repositories/LearningDatasetReader.cs
T
kjh2064 49637f1b02
Validators (Pushes and Pull Requests) / validate-ui-and-storage (push) Failing after 17s
Validators (Pushes and Pull Requests) / validate-core (push) Failing after 54s
feat: export PostgreSQL training dataset as JSON
2026-07-12 11:55:17 +09:00

25 lines
954 B
C#

using Dapper;
using QuantEngine.Core.Interfaces;
using QuantEngine.Infrastructure.Data;
namespace QuantEngine.Infrastructure.Repositories;
public sealed class LearningDatasetReader : ILearningDatasetReader
{
private readonly IDbConnectionFactory _connectionFactory;
public LearningDatasetReader(IDbConnectionFactory connectionFactory) => _connectionFactory = connectionFactory;
public async Task<IReadOnlyList<IDictionary<string, object?>>> ReadTrainingExamplesAsync(int limit = 1000)
{
if (limit is < 1 or > 10000)
throw new ArgumentOutOfRangeException(nameof(limit));
using var connection = _connectionFactory.CreateConnection();
var rows = await connection.QueryAsync(
"SELECT * FROM engine_history.training_example_v1 ORDER BY decided_at DESC LIMIT @Limit",
new { Limit = limit });
return rows.Select(row => (IDictionary<string, object?>)row).ToList();
}
}