private IQueryable <Shareholder> SearchByFilters(ShareholderFilter shareholderFilter, IQueryable <Shareholder> shareholders) { if (shareholderFilter != null) { if (!String.IsNullOrEmpty(shareholderFilter?.CompanyName)) { shareholders = shareholders.Where(s => s.Company.Name.Contains(shareholderFilter.CompanyName)); } if (shareholderFilter?.DateOfCompanyCreation != new DateTime()) { shareholders = shareholders.Where(s => s.Company.DateOfCreation.EqualsUpToSeconds(shareholderFilter.DateOfCompanyCreation)); } } return(shareholders); }
public async Task <PaginatedPlainModel <Shareholder> > GetAll(int startIndex, int pageSize, ShareholderFilter shareholderFilter = null) { var filteredShareholders = SearchByFilters(shareholderFilter, context.Shareholders.Include(c => c.Company).Include(c => c.Person).AsQueryable()); var shareholders = await PaginatedPlainModel <Shareholder> .Paginate(filteredShareholders, startIndex, pageSize); return(shareholders); }
public async Task <PaginatedPlainModel <Shareholder> > GetAll(int startIndex, int pageSize, ShareholderFilter shareholderFilter = null) { var filteredShareholders = SearchByFilters(shareholderFilter, container.Shareholders.AsQueryable()); var shareholders = await PaginatedPlainModel <Shareholder> .Paginate(filteredShareholders, startIndex, pageSize); return(await Task.FromResult(shareholders).ConfigureAwait(false)); }