public static void ResolveFilterExpressionValue(ref FilterExpression expression, FormContext formContext) { if (expression != null) { // get linkedvalue from customrequest var entFieldFilters = expression.GetAll().Where(x => !x.IsValueResolved); foreach (var filter in entFieldFilters) { var val = ResolveValue(formContext, EvalParamValue.FromExp(filter.Exp)); filter.SetResolvedValue(val); } } }
public static object ResolveValue(FormContext formContext, EvalParamValue param) { if (param.Source == EvalSourceType.Constant) { return(param.Value); } else if (param.Source == EvalSourceType.ModelField) { return(GetFieldValue(formContext, param.Value.ToString())); } else if (param.Source == EvalSourceType.RequestQuery) { return(GetRequestQueryValue(formContext.RequestQuery, param.Value.ToString())); } else if (param.Source == EvalSourceType.Parameters) { return(GetParametersValue(formContext, param.Value.ToString())); } return(param.Value); }