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); }
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); }
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)); }