示例#1
0
        public static IFluentContinuation <TViewModel, TPropertyValue> BetweenValues <TViewModel, TPropertyValue>(
            this IFluentOperator <TViewModel, TPropertyValue> instance,
            object @from,
            object to)
            where TViewModel : ViewModelBase
        {
            var implementerInstance = (FluentImplementer <TViewModel, TPropertyValue>)instance;

            implementerInstance.EnsureContextCurrentPropertyIsNotNull();

            // uses parenthesis to satisfy syntax : IsNot.BetweenValues (...)
            implementerInstance.AddToken(ExpressionNode.OpenParenthesis());
            implementerInstance.AddToken(ExpressionNode.OpenParenthesis());
            implementerInstance.AddToken(ExpressionNode.GreaterThanValue(implementerInstance.Context.CurrentProperty, @from));
            implementerInstance.AddToken(ExpressionNode.Or());
            implementerInstance.AddToken(ExpressionNode.EqualToValue(implementerInstance.Context.CurrentProperty, @from));
            implementerInstance.AddToken(ExpressionNode.CloseParenthesis());
            implementerInstance.AddToken(ExpressionNode.And());
            implementerInstance.AddToken(ExpressionNode.OpenParenthesis());
            implementerInstance.AddToken(ExpressionNode.LessThanValue(implementerInstance.Context.CurrentProperty, to));
            implementerInstance.AddToken(ExpressionNode.Or());
            implementerInstance.AddToken(ExpressionNode.EqualToValue(implementerInstance.Context.CurrentProperty, to));
            implementerInstance.AddToken(ExpressionNode.CloseParenthesis());
            implementerInstance.AddToken(ExpressionNode.CloseParenthesis());

            return((IFluentContinuation <TViewModel, TPropertyValue>)instance);
        }
示例#2
0
        public static IFluentContinuation <TViewModel, TPropertyValue> Null <TViewModel, TPropertyValue>(
            this IFluentOperator <TViewModel, TPropertyValue> instance)
            where TViewModel : ViewModelBase
        {
            var implementerInstance = (FluentImplementer <TViewModel, TPropertyValue>)instance;

            implementerInstance.EnsureContextCurrentPropertyIsNotNull();

            implementerInstance.AddToken(ExpressionNode.EqualToValue(implementerInstance.Context.CurrentProperty, null));
            return((IFluentContinuation <TViewModel, TPropertyValue>)instance);
        }
示例#3
0
        public static IFluentContinuation <TViewModel, TPropertyValue> DifferentOf <TViewModel, TPropertyValue>(
            this IFluentOperator <TViewModel, TPropertyValue> instance, TPropertyValue value)
            where TViewModel : ViewModelBase
        {
            var implementerInstance = (FluentImplementer <TViewModel, TPropertyValue>)instance;

            implementerInstance.EnsureContextCurrentPropertyIsNotNull();

            // different of = not equal to value
            implementerInstance.AddToken(ExpressionNode.Not());
            implementerInstance.AddToken(ExpressionNode.EqualToValue(implementerInstance.Context.CurrentProperty, value));
            return((IFluentContinuation <TViewModel, TPropertyValue>)instance);
        }
示例#4
0
        public static IFluentContinuation <TViewModel, TPropertyValue> GreaterThanOrEqualTo <TViewModel, TPropertyValue>(
            this IFluentOperator <TViewModel, TPropertyValue> instance, TPropertyValue value)
            where TViewModel : ViewModelBase
            where TPropertyValue : IComparable
        {
            var implementerInstance = (FluentImplementer <TViewModel, TPropertyValue>)instance;

            implementerInstance.EnsureContextCurrentPropertyIsNotNull();

            implementerInstance.AddToken(ExpressionNode.OpenParenthesis());
            implementerInstance.AddToken(ExpressionNode.GreaterThanValue(implementerInstance.Context.CurrentProperty, value));
            implementerInstance.AddToken(ExpressionNode.Or());
            implementerInstance.AddToken(ExpressionNode.EqualToValue(implementerInstance.Context.CurrentProperty, value));
            implementerInstance.AddToken(ExpressionNode.CloseParenthesis());
            return((IFluentContinuation <TViewModel, TPropertyValue>)instance);
        }
示例#5
0
        public static IFluentContinuation <TViewModel, TPropertyValue> NullOrEmpty <TViewModel, TPropertyValue>(
            this IFluentOperator <TViewModel, TPropertyValue> instance)
            where TViewModel : ViewModelBase
            where TPropertyValue : IComparable <string>, IEquatable <string>
        {
            var implementerInstance = (FluentImplementer <TViewModel, TPropertyValue>)instance;

            implementerInstance.EnsureContextCurrentPropertyIsNotNull();

            implementerInstance.AddToken(ExpressionNode.OpenParenthesis());
            implementerInstance.AddToken(ExpressionNode.EqualToValue(implementerInstance.Context.CurrentProperty, null));
            implementerInstance.AddToken(ExpressionNode.Or());
            implementerInstance.AddToken(ExpressionNode.EqualToValue(implementerInstance.Context.CurrentProperty, string.Empty));
            implementerInstance.AddToken(ExpressionNode.CloseParenthesis());
            return((IFluentContinuation <TViewModel, TPropertyValue>)instance);
        }
示例#6
0
        public static IFluentContinuation <TViewModel, TPropertyValue> Required <TViewModel, TPropertyValue>(
            this IFluentOperator <TViewModel, TPropertyValue> instance)
            where TViewModel : ViewModelBase
        {
            var implementerInstance = (FluentImplementer <TViewModel, TPropertyValue>)instance;

            implementerInstance.EnsureContextCurrentPropertyIsNotNull();

            // required = is neither null nor empty
            implementerInstance.AddToken(ExpressionNode.Not());
            implementerInstance.AddToken(ExpressionNode.OpenParenthesis());
            implementerInstance.AddToken(ExpressionNode.EqualToValue(implementerInstance.Context.CurrentProperty, null));
            implementerInstance.AddToken(ExpressionNode.Or());
            implementerInstance.AddToken(ExpressionNode.EqualToValue(implementerInstance.Context.CurrentProperty, string.Empty));
            implementerInstance.AddToken(ExpressionNode.CloseParenthesis());

            return((IFluentContinuation <TViewModel, TPropertyValue>)instance);
        }