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)),
            });
        }
예제 #3
0
        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)));
 }