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()); }
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); }
public static dynamic Search <TClass>(IEnumerable <TClass> query, SmartFilterCommand command) where TClass : class { return(Search <TClass>(query.AsQueryable(), command)); }