diff --git a/.claude/settings.local.json b/.claude/settings.local.json index d9b3047..eef50ad 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -23,7 +23,9 @@ "Bash(Get-ChildItem src/Strata.SqlTools.SqlServer/ExpressionFactory/Query/*.cs)", "Bash(Measure-Object)", "Bash(Select-Object -ExpandProperty Count)", - "PowerShell(dotnet build *)" + "PowerShell(dotnet build *)", + "Bash(Get-ChildItem src/Strata.SqlTools.Query/*.cs)", + "Bash(Select-String -Pattern '^namespace ')" ] } } diff --git a/src/Strata.SqlTools.Query/CalculationFilterGroup.cs b/src/Strata.SqlTools.Query/CalculationFilterGroup.cs index b31ef36..29653ee 100644 --- a/src/Strata.SqlTools.Query/CalculationFilterGroup.cs +++ b/src/Strata.SqlTools.Query/CalculationFilterGroup.cs @@ -2,24 +2,16 @@ using System.Text.Json.Serialization; namespace Strata.SqlTools.Query; -public class CalculationFilterGroup +[method: JsonConstructor] +public class CalculationFilterGroup(IEnumerable filters, LogicalOperator logicalOperator) { // Hereditary logical operation applied to all Filters - public LogicalOperator LogicalOperator { get; set; } + public LogicalOperator LogicalOperator { get; set; } = logicalOperator; - public IEnumerable Filters { get; set; } + public IEnumerable Filters { get; set; } = filters; - public CalculationFilterGroup() + public CalculationFilterGroup() : this([], LogicalOperator.And) { - LogicalOperator = LogicalOperator.And; - Filters = new List(); - } - - [JsonConstructor] - public CalculationFilterGroup(IEnumerable filters, LogicalOperator logicalOperator) - { - Filters = filters; - LogicalOperator = logicalOperator; } public IEnumerable GetValidFilters() @@ -29,6 +21,6 @@ public class CalculationFilterGroup public bool IsValid() { - return Filters != null && Filters.Any(x => x.IsValid()); + return Filters.All(x => x.IsValid()); } }