예제 #1
0
        public override Func <TwitterStatus, bool> GetBooleanValueProvider()
        {
            var lbp = LeftValue.GetBooleanValueProvider();
            var rbp = RightValue.GetBooleanValueProvider();

            return(_ => lbp(_) || rbp(_));
        }
예제 #2
0
        public override Func <TwitterStatus, bool> GetBooleanValueProvider()
        {
            switch (this.GetArgumentIntersectTypes())
            {
            case FilterExpressionType.Boolean:
                var lbp = LeftValue.GetBooleanValueProvider();
                var rbp = RightValue.GetBooleanValueProvider();
                return(_ => lbp(_) == rbp(_));

            case FilterExpressionType.Numeric:
                var lnp = LeftValue.GetNumericValueProvider();
                var rnp = RightValue.GetNumericValueProvider();
                return(_ => lnp(_) == rnp(_));

            case FilterExpressionType.String:
                var lsp = LeftValue.GetStringValueProvider();
                var rsp = RightValue.GetStringValueProvider();
                return(_ => String.Equals(lsp(_), rsp(_), GetStringComparison()));

            default:
                throw new InvalidOperationException("Invalid code path.");
            }
        }