Пример #1
0
        public static dynamic Search <TClass>(IQueryable <TClass> query, SmartFilterCommand command) where TClass : class
        {
            int    count  = 0;
            object result = null;

            var expression = SmartForm.Descriptor.Builder.Builder.GetExpression <TClass>(command.FilterDescriptors);

            query = query.Where(expression);
            query = OrderBy <TClass>(query, command.SortDescriptors);

            count = query.Count();

            if (command.Skip > 0)
            {
                query = query.Skip(command.Skip);
            }

            if (command.Top > 0)
            {
                query = query.Take(command.Top);
            }

            result = query.ToList();

            return(new
            {
                Count = count,
                Result = result
            });
        }
        public static string Parse(SmartFilterCommand command)
        {
            var formatter = new SmartFilterRavenFormatter();

            if (command.FilterDescriptors.Count > 0)
            {
                formatter.filter(command.FilterDescriptors);
            }
            return(formatter.ToString());
        }
Пример #3
0
        public static SmartFilterCommand Parse(string fromBy, int skip, int top, string select, string orderBy, string filter, System.Collections.Specialized.NameValueCollection parameters)
        {
            SmartFilterCommand result = new SmartFilterCommand
            {
                Skip              = skip,
                Top               = top,
                From              = fromBy,
                SortDescriptors   = SmartFilterDescriptorSerializer.Deserialize <SortDescriptor>(orderBy),
                SelectDescriptors = SmartFilterDescriptorSerializer.Deserialize <SelectDescriptor>(select),
                FilterDescriptors = FilterDescriptorFactory.Create(filter),
                Parameters        = parameters
            };

            return(result);
        }
Пример #4
0
 public static dynamic Search <TClass>(IEnumerable <TClass> query, SmartFilterCommand command) where TClass : class
 {
     return(Search <TClass>(query.AsQueryable(), command));
 }