Пример #1
0
        public virtual AccountSearchResult <TEntity> Search <TEntity>(AccountSearchCriteria <TEntity> searchCriteria, bool all = false) where TEntity : class, new()
        {
            GmiContext context = _context ?? new GmiContext();

            var dbSet = context.Set <TEntity>();

            IQueryable <TEntity> query = dbSet;


            if (searchCriteria.FilterExpression != null)
            {
                query = query.Where(searchCriteria.FilterExpression);
            }

            if (searchCriteria.SortExpression != null)
            {
                query = searchCriteria.SortExpression(query);
            }


            AccountSearchResult <TEntity> result = new AccountSearchResult <TEntity>(searchCriteria)
            {
                TotalResultsCount = query.Count(),
            };

            if (!all)
            {
                query = query.Skip(searchCriteria.StartIndex).Take(searchCriteria.PageSize);
            }


            result.Result = query.ToList();


            if (_context == null)
            {
                context.Dispose();
            }


            return(result);
        }
Пример #2
0
        public virtual AccountSearchResult <TEntity> SearchUser <TEntity>(AccountSearchCriteria <TEntity> searchCriteria) where TEntity : User, new()
        {
            GmiContext context = _context ?? new GmiContext();

            var dbSet = context.Set <TEntity>();

            IQueryable <TEntity> query = dbSet;


            if (searchCriteria.FilterExpression != null)
            {
                query = query.Where(searchCriteria.FilterExpression);
            }

            if (searchCriteria.SortExpression != null)
            {
                query = searchCriteria.SortExpression(query);
            }
            else
            {
                query = query.OrderByDescending(entity => entity.Id);
            }

            AccountSearchResult <TEntity> result = new AccountSearchResult <TEntity>(searchCriteria)
            {
                TotalResultsCount = query.Count(),
            };

            query = query.Skip(searchCriteria.StartIndex).Take(searchCriteria.PageSize);

            result.Result = query.ToList();


            if (_context == null)
            {
                context.Dispose();
            }


            return(result);
        }
Пример #3
0
        public ActionResult Index([Bind(Include = "Page, Sort")] PageSortCriteria pageSortCriteria, [Bind(Include = "Name,IndustryType")] AccountSearchCriteria searchCriteria = null)
        {
            AccountListVM vm = new AccountListVM
            {
                Accounts         = UOW.Accounts.GetAllPaged(pageSortCriteria, searchCriteria),
                PageSortCriteria = pageSortCriteria,
                SearchCriteria   = searchCriteria
            };

            return(View(vm));
        }