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));
        }
Exemple #2
0
        public async Task <IActionResult> GetAll([FromQuery] VolunteersSearchQueryParameters searchQuery)
        {
            var items = await dataInterface.GetVolunteersAsync(searchQuery);

            return(Json(items));
        }