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); }
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); }
public void AddField(FilterExpField field) { this.FilterExp.Add(field); }
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); }
public bool EvaluateFieldExpression(FilterExpField exp, object leftVal = null) { return(true); }