public async Task <IEnumerable <CountryWithCitiesDto> > Handle(GetCitiesQuery request, CancellationToken cancellationToken) { return(await context.Countries .Where(x => x.Cities.Any()) .Include(x => x.Cities) .ProjectTo <CountryWithCitiesDto>(mapper.ConfigurationProvider) .ToListAsync(cancellationToken)); }
public async Task <QueryResult <CityDto> > Handle(GetCitiesQuery request, CancellationToken cancellationToken) { IEnumerable <City> cities = await cityRepository.ReadAsync(cancellationToken); return(new QueryResult <CityDto>() { Items = cities.Select(r => new CityDto(r)), }); }
public async Task <JObject> GetCities(string searchTerm, int limit, CancellationToken cancellationToken) { if (string.IsNullOrEmpty(searchTerm?.Trim())) { throw new ArgumentNullException(nameof(searchTerm)); } if (limit <= 0) { throw new ArgumentOutOfRangeException(nameof(limit), $"{nameof(limit)} needs to be bigger than 0"); } var query = new GetCitiesQuery(searchTerm, limit); var request = BuildRestRequest(query.BuildRequest()); var client = CreateClient(); var response = await client.ExecutePostTaskAsync <GraphQLResponse>(request, cancellationToken).ConfigureAwait(false); return(response?.Data?.Data); }
public async Task <ActionResult <List <CityDto> > > GetCitiesByName(GetCitiesQuery query) { return(Ok(await _mediator.Send(query))); }