private void CreateWidgets(FormContext formContext, BaseField fieldInfo, FilterExpField filterField = null)
        {
            formContext.AddEntityModelInfo("FieldName", fieldInfo.Name);

            formContext.AddControl(AddFieldName(formContext, fieldInfo));

            var widgetContext = new WidgetContext(formContext);

            widgetContext.Build(fieldInfo, new TField()
            {
                FieldId = "Field"
            });
            widgetContext.IsRequired = false;
            widgetContext.Validation = null;

            var widget = WidgetFactory.Create(widgetContext);

            widget.OnCompile();
            if (filterField != null)
            {
                widget.SetValue(filterField.Value);
            }
            formContext.AddControl(widget);

            AddOperationField(formContext, fieldInfo, filterField);
        }
Example #2
0
        private bool GetRightValue(FilterExpField criteria, out object rVal, ref FieldType rFieldType)
        {
            bool isVaild = true;

            if (criteria.ValueType == FilterValueType.EntityField)
            {
                rVal = _DataModel.GetValue(criteria.FieldName);
            }
            else
            {
                rVal = criteria.Value;
            }

            return(isVaild);
        }
        private void AddOperationField(FormContext formContext, BaseField fieldInfo, FilterExpField filterField = null)
        {
            var widgetContext = WidgetContext.BuildContext(formContext, "OP");

            widgetContext.WidgetType = FormControlType.Dropdown;

            DropdownWidget widget = (DropdownWidget)ViewModel.FormWidget.WidgetFactory.Create(widgetContext);

            widget.Options = GetOptions(fieldInfo.BaseType, fieldInfo.Type);
            widget.OnCompile();
            if (filterField != null)
            {
                widget.SetValue((int)filterField.Op);
            }

            formContext.AddControl(widget);
        }
Example #4
0
 public void AddField(FilterExpField field)
 {
     this.FilterExp.Add(field);
 }
Example #5
0
        public bool EvaluateFieldExpression(FilterExpField criteria, object lVal, object rVal, FieldType rFieldType = FieldType.None)
        {
            var field = criteria.Field;

            object[] inSet = null;
            if (lVal is DateTime || rVal is DateTime || (field != null && field.BaseType == TypeCode.DateTime))
            {
                //return DateCompare(criteria, lVal, rVal, rFieldType);
            }
            if (lVal is Boolean && rVal is string)
            {
                rVal = (bool)(rVal.ToString() == "1" || rVal.ToString().ToLower() == "true");
            }
            if (criteria.Op == FilterOperationType.IsSpecified || criteria.Op == FilterOperationType.NotSpecified)
            {
                //return GetSpecifiedNotSpecifiedResult(criteria.Operation, field, lVal);
            }
            int compResult = 0;

            if (rVal != null && criteria.Op == FilterOperationType.In || criteria.Op == FilterOperationType.NotIn)
            {
                inSet = FilterExpField.GetValueSet(rVal.ToString(), lVal.GetType());
            }
            else
            {
                rVal = Convert.ChangeType(rVal, lVal.GetType());

                if (rVal is string)
                {
                    compResult = ((IComparable)lVal.ToString().ToLower()).CompareTo(rVal.ToString().ToLower());
                }
                else
                {
                    compResult = ((IComparable)lVal).CompareTo(rVal);
                }
            }

            bool result = false;

            switch (criteria.Op)
            {
            case FilterOperationType.AnyOf:
            case FilterOperationType.In:
                result = IsInSet(lVal, inSet);
                break;

            case FilterOperationType.NotIn:
                result = IsNotInSet(lVal, inSet);
                break;

            case FilterOperationType.Equal:
                result = compResult == 0;
                break;

            case FilterOperationType.GreaterThan:
                result = compResult > 0;
                break;

            case FilterOperationType.GreaterThanEqual:
                result = compResult >= 0;
                break;

            case FilterOperationType.LessThan:
                result = compResult < 0;
                break;

            case FilterOperationType.LessThanEqual:
                result = compResult <= 0;
                break;

            case FilterOperationType.NotEqual:
                result = compResult != 0;
                break;

            case FilterOperationType.StartWith:
                result = StartWith(lVal, rVal);
                break;

            case FilterOperationType.Like:
                result = IsLike(lVal, rVal);
                break;
            }

            return(result);
        }
Example #6
0
 public bool EvaluateFieldExpression(FilterExpField exp, object leftVal = null)
 {
     return(true);
 }