/
krasninja
/
querycat
Обзор
Документация
Войти
/
krasninja
/
querycat
Код
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
src/QueryCat.IntegrationTests/Plugins/SamplePluginInput.cs
47 строк
1 KB
Ivan Kozhin
Refactor keys columns logic
16 мар 2024, 17:09
16 мар 2024, 17:09
0a76675
Код
Авторство
О чём код?
using System.ComponentModel; using System.Diagnostics; using QueryCat.Backend.Core.Fetch; using QueryCat.Backend.Core.Functions; using QueryCat.Backend.Core.Types; namespace QueryCat.IntegrationTests.Plugins; /// <summary> /// Example simple rows input plugin based on <see cref="FetchRowsInput{TClass}" />. /// </summary> public class SamplePluginInput : FetchRowsInput<TestClass> { private const long MaxValue = 9; [Description("Sample input.")] [FunctionSignature("plugin(): object<IRowsInput>")] public static VariantValue SamplePlugin(FunctionCallInfo args) { var rowsSource = new SamplePluginInput(); return VariantValue.CreateFromObject(rowsSource); } private long _currentState; /// <inheritdoc /> protected override void Initialize(ClassRowsFrameBuilder<TestClass> builder) { Trace.WriteLine(nameof(Initialize)); builder .AddProperty(b => b.Key) .AddKeyColumn("key", isRequired: false, operation: VariantValue.Operation.Equals); } /// <inheritdoc /> protected override IEnumerable<TestClass> GetData(Fetcher<TestClass> fetcher) { Trace.WriteLine(nameof(GetData)); var key = GetKeyColumnValue("key"); for (var i = 0; i < MaxValue; i++) { yield return new TestClass(++_currentState); } } }