public async Task <IPagedResults <Volunteer> > GetVolunteersAsync(VolunteersSearchQueryParameters searchQuery) { var onlyEssUsers = searchQuery.OnlyEssUsers ?? false; var onlyAdmins = searchQuery.OnlyAdminUsers ?? false; var items = await Volunteers .Where(v => !searchQuery.HasQuery() || EF.Functions.Like(v.LastName, $"%{searchQuery.Query}%")) .Where(v => !onlyEssUsers || !v.IsAdministrator.Value) .Where(v => !onlyAdmins || v.IsAdministrator.Value) .Where(v => searchQuery.OrganizationId == null || v.Organization.Id == Guid.Parse(searchQuery.OrganizationId)) .Where(t => searchQuery.Active == t.Active) .Sort(searchQuery.SortBy ?? "lastname") .ToArrayAsync(); return(new PaginatedList <Volunteer>(mapper.Map <IEnumerable <Volunteer> >(items), searchQuery.Offset, searchQuery.Limit)); }
public async Task <IActionResult> GetAll([FromQuery] VolunteersSearchQueryParameters searchQuery) { var items = await dataInterface.GetVolunteersAsync(searchQuery); return(Json(items)); }