private bool IsThereOtherValidConditionAfterCurrentCondition(SelectCondition currentCondition, List <SelectCondition> conditions)
        {
            int index = conditions.FindIndex(item => item.Equals(currentCondition));

            if (index == conditions.Count - 1)
            {
                return(false);
            }
            List <SelectCondition> conditionsBehindCurrentCondition = conditions.GetRange(index + 1, conditions.Count - index - 1);

            return(HasValidCondition(conditionsBehindCurrentCondition));
        }
 public void AddOrCondition(SelectCondition condition) => _orConditions.Add(condition);
 public void AddAndCondition(SelectCondition condition) => _andConditions.Add(condition);
 private bool IsThereOtherValidOrConditions(SelectCondition orCondition)
 {
     return(IsThereOtherValidConditionAfterCurrentCondition(orCondition, _orConditions));
 }
 private bool IsThereOtherValidAndConditions(SelectCondition andCondition)
 {
     return(IsThereOtherValidConditionAfterCurrentCondition(andCondition, _andConditions));
 }