/
krasninja
/
querycat
Обзор
Документация
Войти
/
krasninja
/
querycat
Код
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
src/QueryCat.Backend/Commands/Select/SelectQueryCondition.cs
59 строк
2 KB
Ivan Kozhin
Move some messages to resources
16 фев 2024, 13:35
16 фев 2024, 13:35
57c0499
Код
Авторство
О чём код?
using QueryCat.Backend.Core.Data; using QueryCat.Backend.Core.Types; using QueryCat.Backend.Storage; namespace QueryCat.Backend.Commands.Select; /// <summary> /// Query filter condition. /// </summary> internal sealed class SelectQueryCondition { public Column Column { get; } public VariantValue.Operation Operation { get; } public IReadOnlyList<IFuncUnit> ValueFuncs { get; } public IFuncUnit ValueFunc => ValueFuncs[0]; /// <summary> /// Constructor. /// </summary> /// <param name="column">Filter column.</param> /// <param name="operation">Filter operation.</param> /// <param name="valueFuncs">Filter values.</param> public SelectQueryCondition( Column column, VariantValue.Operation operation, IReadOnlyList<IFuncUnit> valueFuncs) { if (valueFuncs.Count < 1) { throw new ArgumentException(Resources.Errors.NoValues, nameof(valueFuncs)); } this.Column = column; this.Operation = operation; this.ValueFuncs = valueFuncs; } /// <summary> /// Constructor. /// </summary> /// <param name="column">Filter column.</param> /// <param name="operation">Filter operation.</param> /// <param name="value">Filter value.</param> public SelectQueryCondition( Column column, VariantValue.Operation operation, IFuncUnit value) : this(column, operation, new[] { value }) { } public CacheKeyCondition ToCacheCondition() => new(Column, Operation, ValueFuncs.Select(f => f.Invoke()).ToArray()); /// <inheritdoc /> public override string ToString() => $"Column = {Column}, Operation = {Operation}"; }