{        //provare a dusare
        //var param = typeof(QueryDescriptorSort).GetProperty(par.Field);
        //        if (par.Dir == "asc")
        //            source.OrderBy(x => param.GetValue(x, null));


        //makes expression for specific prop
        private static Expression <Func <TSource, object> > GetExpression <TSource>(QueryDescriptorSort property)
        {
            var        param      = Expression.Parameter(typeof(TSource), property.Field + "param");
            Expression conversion = Expression.Convert(Expression.Property(param, property.Field), typeof(object));

            return(Expression.Lambda <Func <TSource, object> >(conversion, param));
        }
 //makes deleget for specific prop
 private static Func <TSource, object> GetFunc <TSource>(QueryDescriptorSort propertyName)
 {
     return(GetExpression <TSource>(propertyName).Compile());  //only need compiled expression
 }