protected IEnumerable <StreetDTO> GetStreetDTOs(Guid?cityId, string searchString, int limit, CancellationToken token)
        {
            if (cityId == null)
            {
                return(new List <StreetDTO>());
            }
            try
            {
                Task.Delay(Delay, token).Wait();
                logger.Info($"Запрос улиц... Строка поиска : {searchString} , Кол-во записей {limit}");
                return(Fias.GetStreetsByCriteria((Guid)cityId, searchString, limit));
            }
            catch (AggregateException ae)
            {
                ae.Handle(ex =>
                {
                    if (ex is TaskCanceledException)
                    {
                        logger.Info("Запрос улиц отменен");
                    }

                    return(ex is TaskCanceledException);
                });
                return(new List <StreetDTO>());
            }
        }
Exemplo n.º 2
0
        public void LoadHouses(string searchString = null, Guid?streetGuid = null, Guid?cityGuid = null)
        {
            CancelLoading();

            _logger.Info("Запрос домов...");

            if (streetGuid != null)
            {
                CurrentLoadTask = Task.Run(() => Fias.GetHousesFromStreetByCriteria((Guid)streetGuid, searchString), cancelTokenSource.Token);
            }
            else if (cityGuid != null)
            {
                CurrentLoadTask = Task.Run(() => Fias.GetHousesFromCityByCriteria((Guid)cityGuid, searchString), cancelTokenSource.Token);
            }
            else
            {
                return;
            }

            CurrentLoadTask.ContinueWith(SaveHouses, cancelTokenSource.Token, TaskContinuationOptions.OnlyOnRanToCompletion, TaskScheduler.Default);

            CurrentLoadTask.ContinueWith(arg => _logger.Error("Ошибка при загрузке домов", arg.Exception), TaskContinuationOptions.OnlyOnFaulted);
        }
Exemplo n.º 3
0
        private IEnumerable <CityDTO> GetFiasCities(string searchString, int limit, CancellationToken token)
        {
            try
            {
                Task.Delay(Delay, token).Wait();
                logger.Info($"Запрос городов... Строка поиска : { searchString } , Кол-во записей { limit }");
                return(Fias.GetCitiesByCriteria(searchString, limit));
            }
            catch (AggregateException ae)
            {
                ae.Handle(ex =>
                {
                    if (ex is TaskCanceledException)
                    {
                        logger.Info("Запрос городов отменен");
                    }

                    return(ex is TaskCanceledException);
                });

                return(new List <CityDTO>());
            }
        }
Exemplo n.º 4
0
 public async Task <PointDTO> GetCoordinatesByGeocoderAsync(string address, CancellationToken cancellationToken)
 {
     return(await Fias.GetCoordinatesByGeoCoderAsync(address, cancellationToken));
 }
Exemplo n.º 5
0
        public CityDTO GetCity(string cityName)
        {
            var cities = Fias.GetCitiesByCriteria(cityName, 1);

            return(cities.SingleOrDefault());
        }