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>()); } }
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); }
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>()); } }
public async Task <PointDTO> GetCoordinatesByGeocoderAsync(string address, CancellationToken cancellationToken) { return(await Fias.GetCoordinatesByGeoCoderAsync(address, cancellationToken)); }
public CityDTO GetCity(string cityName) { var cities = Fias.GetCitiesByCriteria(cityName, 1); return(cities.SingleOrDefault()); }