public static StaticPagedList <TEntity> ToPagedList <TEntity>(this AccountSearchResult <TEntity> searchResult) where TEntity : class, new() { var result = new StaticPagedList <TEntity>( searchResult.Result, searchResult.PageNumber, searchResult.PageSize, searchResult.TotalResultsCount); return(result); }
public async Task <ActionResult <AccountSearchResponse> > Search([FromQuery] AccountSearchRequest request) { request.EnsureValidation(); AccountSearchArgs accountSearchArgs = new AccountSearchArgs(); IMediator mediator = Factory.Resolve <IMediator>(); AccountSearchResult accountSearchResult = await mediator.Send(new AccountSearchCommand(accountSearchArgs)); accountSearchResult.EnsureSuccess(); AccountSearchResponse response = new AccountSearchResponse { Accounts = accountSearchResult.Results .Select(x => { return(new AccountLiteView(x)); }) .ToArray() }; return(Ok(response)); }
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); }