Beispiel #1
0
        public OrderByExpression(string orderBy)
        {
            if (orderBy.StartsWith("-"))
            {
                Descending = true;
            }

            Key = QuerySanitizer.GetKey(ValidationType.OrderBy, orderBy);
        }
Beispiel #2
0
        public FilterExpression(string filter)
        {
            Operator     = QuerySanitizer.GetFilterOperator(filter);
            Key          = QuerySanitizer.GetKey(ValidationType.Filter, filter);
            StringValues = QuerySanitizer.GetFilterValues(filter);
            this.ValidatePropertyType(Key, StringValues);

            Values = StringValues.Select(x => (TResult)Convert.ChangeType(x, typeof(TResult))).ToArray();
            OperationExpression = ExpressionFactory <TResult> .RequestFunc(Operator);
        }
Beispiel #3
0
        public static List <IExpression <TEntity> > ParseQuery <TEntity>(this string query,
                                                                         IInternalQueryValidator <TEntity> validator, ValidationType type)
        {
            var expressions = new List <IExpression <TEntity> >();

            if (query == null)
            {
                return(expressions);
            }

            foreach (var subQuery in query.Split(','))
            {
                var key = QuerySanitizer.GetKey(type, subQuery);

                var expressionType = validator.GetResultType(key, type);
                expressions.Add((IExpression <TEntity>)MakeGenericType <TEntity>(typeMap[type], expressionType, subQuery));
            }

            return(expressions);
        }
Beispiel #4
0
 public ExpandExpression(string key)
 {
     Key = QuerySanitizer.GetKey(ValidationType.Expand, key);
 }