public static Expression EvaluateAttributes(this SCIMLogicalExpression expression, ParameterExpression parameterExpression)
        {
            switch (expression.LogicalOperator)
            {
            case SCIMLogicalOperators.AND:
                return(Expression.AndAlso(expression.LeftExpression.EvaluateAttributes(parameterExpression), expression.RightExpression.EvaluateAttributes(parameterExpression)));

            default:
                return(Expression.OrElse(expression.LeftExpression.EvaluateAttributes(parameterExpression), expression.RightExpression.EvaluateAttributes(parameterExpression)));
            }
        }
        private static Expression Evaluate(this SCIMLogicalExpression logicalExpression, ParameterExpression parameterExpression)
        {
            switch (logicalExpression.LogicalOperator)
            {
            case SCIMLogicalOperators.AND:
                return(Expression.AndAlso(logicalExpression.LeftExpression.Evaluate(parameterExpression), logicalExpression.RightExpression.Evaluate(parameterExpression)));

            default:
                return(Expression.OrElse(logicalExpression.LeftExpression.Evaluate(parameterExpression), logicalExpression.RightExpression.Evaluate(parameterExpression)));
            }
        }