コード例 #1
0
        public override CriteriaWithText GetCriteria()
        {
            var result = new CriteriaWithText();

            switch (Operator.Key)
            {
            case FilterOperators.EQ:
            case FilterOperators.NE:
            case FilterOperators.LT:
            case FilterOperators.LE:
            case FilterOperators.GT:
            case FilterOperators.GE:
            {
                var text = GetEditorText();
                result.DisplayText = DisplayText(Operator, text);
                var date = Q.ParseISODateTime((string)GetEditorValue());
                date = new JsDate(date.GetFullYear(), date.GetMonth(), date.GetDate());
                var next      = new JsDate(date.GetFullYear(), date.GetMonth(), date.GetDate() + 1);
                var criteria  = new Criteria(GetCriteriaField());
                var dateValue = new ValueCriteria(Q.FormatDate(date, "yyyy-MM-dd"));
                var nextValue = new ValueCriteria(Q.FormatDate(next, "yyyy-MM-dd"));

                switch (Operator.Key)
                {
                case FilterOperators.EQ:
                    result.Criteria = criteria >= dateValue & criteria < nextValue;
                    return(result);

                case FilterOperators.NE:
                    result.Criteria = ~(criteria <dateValue | criteria> nextValue);
                    return(result);

                case FilterOperators.LT:
                    result.Criteria = criteria < dateValue;
                    return(result);

                case FilterOperators.LE:
                    result.Criteria = criteria < nextValue;
                    return(result);

                case FilterOperators.GT:
                    result.Criteria = criteria >= nextValue;
                    return(result);

                case FilterOperators.GE:
                    result.Criteria = criteria >= dateValue;
                    return(result);
                }
            }
            break;
            }

            return(base.GetCriteria());
        }
コード例 #2
0
ファイル: Criteria.cs プロジェクト: eOkadas/NFluent
            public ValueCriteria[] SplitAsLines()
            {
                var lines  = this.reference.SplitAsLines();
                var result = new ValueCriteria[lines.Count];

                for (var i = 0; i < lines.Count; i++)
                {
                    result[i] = new ValueCriteria(lines[i]);
                }

                return(result);
            }
コード例 #3
0
 /// <summary>
 /// Visits the value criteria. Value criteria is just a constant
 /// value.
 /// </summary>
 /// <param name="criteria">The criteria.</param>
 /// <returns></returns>
 protected virtual BaseCriteria VisitValue(ValueCriteria criteria)
 {
     return(criteria);
 }