public async Task <Page <CompanyViewData> > GetPaginatedEntitiesAsync( int pageSize, int currentPage, string searchText, CompanySearchOptions sortBy) { return(await _repository.GetPaginatedResultsAsync(pageSize, currentPage, searchText, sortBy)); }
public async Task <Page <CompanyViewData> > GetSearchResults( int pageSize = 10, int currentPage = 1, string searchText = "", CompanySearchOptions sortBy = CompanySearchOptions.Name ) { return(await _service.GetPaginatedEntitiesAsync(pageSize, currentPage, searchText, sortBy)); }
public async Task <Page <CompanyViewData> > GetPaginatedResultsAsync(int pageSize, int currentPage, string searchText, CompanySearchOptions sortBy) { var filters = new Filters <CompanyViewData>(); filters.Add(!string.IsNullOrEmpty(searchText), x => x.Name.Contains(searchText)); var sorts = new Sorts <CompanyViewData>(); sorts.Add(sortBy == CompanySearchOptions.Name, x => x.Name); return(await _dbContext.Companies .Select(e => new CompanyViewData { Id = e.Id, Name = e.Name, CreatedAt = e.CreatedAt, OfficesAmount = e.Offices.Where(o => o.CompanyId == e.Id).Count() }) .PaginateAsync(currentPage, pageSize, sorts, filters)); }