public async Task <Page <CompanyViewData> > GetPaginatedEntitiesAsync(
     int pageSize,
     int currentPage,
     string searchText,
     CompanySearchOptions sortBy)
 {
     return(await _repository.GetPaginatedResultsAsync(pageSize, currentPage, searchText, sortBy));
 }
Example #2
0
 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));
 }
Example #3
0
        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));
        }