29 lines
1.1 KiB
C#
29 lines
1.1 KiB
C#
using System.Text.Json.Serialization;
|
|
|
|
namespace Strata.SqlTools.Snowflake.ExpressionFactory.Query;
|
|
|
|
public class Value
|
|
{
|
|
public string ColumnAlias { get; }
|
|
public string Calculation { get; }
|
|
public IEnumerable<int> CalculationDataColumnIds { get; }
|
|
public IEnumerable<string> AliasedIds { get; }
|
|
|
|
public IEnumerable<CalculationFilterGroup> FilterGroups { get; }
|
|
|
|
public Value() : this(string.Empty, string.Empty, new int[0], new string[0], new CalculationFilterGroup[0])
|
|
{
|
|
// FilterGroups = new List<CalculationFilterGroup>();
|
|
}
|
|
|
|
[JsonConstructor]
|
|
public Value(string columnAlias, string calculation, IEnumerable<int> calculationDataColumnIds, IEnumerable<string> aliasedIds, IEnumerable<CalculationFilterGroup> filterGroups)
|
|
{
|
|
ColumnAlias = columnAlias;
|
|
Calculation = calculation;
|
|
CalculationDataColumnIds = calculationDataColumnIds ?? Array.Empty<int>();
|
|
AliasedIds = aliasedIds ?? aliasedIds ?? Array.Empty<string>();
|
|
FilterGroups = filterGroups?.Where(x => x.IsValid()).ToList() ?? new List<CalculationFilterGroup>();
|
|
}
|
|
}
|