protected virtual string BuildBinaryCondition(BinaryCondition condition, IDictionary <string, object> outPutParameters = null) { var builder = new StringBuilder(); var left = BuildCondition(condition.LeftCondition, outPutParameters); var right = BuildCondition(condition.RightCondition, outPutParameters); builder.Append($"({left})") .Append($" {condition.Operation} ") .Append($"({right})"); return(builder.ToString()); }
protected virtual bool IsSatisfy(TData value, BinaryCondition condition) { var leftSatisfy = IsSatisfy(value, condition.LeftCondition); var rightSatisfy = IsSatisfy(value, condition.RightCondition); switch (condition.Operation) { case BinaryOperation.And: return(leftSatisfy && rightSatisfy); case BinaryOperation.Or: return(leftSatisfy || rightSatisfy); default: return(false); } }