Beispiel #1
0
        public async Task <IActionResult> GetFilteredPollingStations(
            [FromQuery] PaginationQuery pagination,
            [FromQuery] PollingStationsQuery query)
        {
            var result = await _mediator.Send(new SearchPollingStations(pagination, query));

            if (result.IsFailure)
            {
                return(Problem(result.Error));
            }

            return(Ok(result.Value));
        }
        public async Task <IActionResult> GetFilteredPollingStations(
            [FromQuery] PaginationQuery pagination,
            [FromQuery] PollingStationsQuery query)
        {
            var pollingStations = await _mediator.Send(new SearchPollingStation(pagination, query));

            if (pollingStations?.Results == null || pollingStations.Results.Count == 0)
            {
                return(NotFound());
            }

            return(Ok(pollingStations));
        }
        public async Task <PagedResult <PollingStationModel> > GetPollingStationsAsync(PollingStationsQuery query = null, PaginationQuery pagination = null)
        {
            var pollingStationsQuery = _context.PollingStations
                                       .Include(x => x.PollingStationAddresses)
                                       .Select(pollingStation => new PollingStationModel
            {
                Id                   = pollingStation.Id,
                Address              = pollingStation.Address,
                Longitude            = pollingStation.Longitude,
                Latitude             = pollingStation.Latitude,
                County               = pollingStation.County,
                PollingStationNumber = pollingStation.PollingStationNumber,
                Locality             = pollingStation.Locality,
                Institution          = pollingStation.Institution,
                AssignedAddresses    = pollingStation.PollingStationAddresses.Select(a => MapToAssignedAddresses(a))
            });

            if (query != null)
            {
                pollingStationsQuery = pollingStationsQuery.Where(x => query.PollingStationId == null || x.Id == query.PollingStationId)
                                       .Where(x => string.IsNullOrEmpty(query.County) || x.County.StartsWith(query.County))
                                       .Where(x => string.IsNullOrEmpty(query.Locality) || x.Locality.StartsWith(query.Locality))
                                       .Where(x => string.IsNullOrEmpty(query.Address) || x.Address.StartsWith(query.Address))
                                       .Where(x => string.IsNullOrEmpty(query.PollingStationNumber) || x.PollingStationNumber.StartsWith(query.PollingStationNumber))
                                       .Where(x => string.IsNullOrEmpty(query.Institution) || x.Institution.StartsWith(query.Institution));
            }


            return(await pollingStationsQuery.GetPaged(pagination?.PageNumber, pagination?.PageSize));
        }
Beispiel #4
0
 public SearchPollingStations(PaginationQuery pagination, PollingStationsQuery query)
 {
     Pagination = pagination;
     Query      = query;
 }