Esempio n. 1
0
 public static IQueryable <T> Sift <T>(
     [NotNull] this IQueryable <T> query,
     [NotNull] ISifterService sifter,
     [NotNull] SifterModel sifterModel
     )
 {
     return(sifter.Sift(query, sifterModel));
 }
Esempio n. 2
0
        public IQueryable <T> Sift <T>(IQueryable <T> query, SifterModel model)
        {
            query = applySortTerms(query, model.GetSortTerms());
            query = applyFilterTerms(query, model.GetFilterTerms());
            query = model.GetPaginationTerm().ApplyPagination(query);

            return(query);
        }
Esempio n. 3
0
        private static string testSorting(string sortInput)
        {
            var sifter  = new MySifterService();
            var context = DataContext.Instance;
            var model   = new SifterModel {
                Sort = sortInput
            };

            var query = context.SubUsers.Include(x => x.Inner);
            var sql   = sifter.Sift(query, model).ToSql(); //TODO a select() must always be after the sift

            return(sql);
        }
Esempio n. 4
0
        private static string testFiltering(string filterInput)
        {
            var sifter  = new MySifterService();
            var context = DataContext.Instance;
            var model   = new SifterModel {
                Filter = filterInput
            };

            var query = context.SubUsers.Include(x => x.Inner);
            var sql   = sifter.Sift(query, model).ToSql();

            return(Regex.Replace(sql, "0+1E0", "")); //Removes all the trailing zeroes for easier testing and legibility
        }
Esempio n. 5
0
        //There are no tests for invalid pagination requests, because if a request is invalid, it will always use the default pagination options



        private static string testPagination(string page, string pageSize)
        {
            var sifter  = new MySifterService();
            var context = DataContext.Instance;
            var model   = new SifterModel {
                Page     = page,
                PageSize = pageSize
            };

            var query = context.SubUsers.Include(x => x.Inner);
            var sql   = sifter.Sift(query, model).ToSql();

            return(sql);
        }